Recently I had some trouble with a Trac instance running on fastcgi that had been moved from one server to another, the latter running a slightly newer Debian.
The Trac used the TracGit plugin for Git integration, running with trac-0.12. On the new server it got upgraded to Trac-1.0. I soon discovered strange errors being displayed from time to time when trying to access big images from the repo via browser:
ValueError: too many values to unpack
or
ValueError: need more than 1 value to unpack
The Trac log contained entries like this one:
2014-06-17 22:09:43,999 Trac[main] ERROR: Internal Server Error:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/trac/web/main.py", line 497, in _dispatch_request
dispatcher.dispatch(req)
File "/usr/lib/python2.7/dist-packages/trac/web/main.py", line 214, in dispatch
resp = chosen_handler.process_request(req)
File "/usr/lib/python2.7/dist-packages/trac/versioncontrol/web_ui/browser.py", line 397, in process_request
file_data = self._render_file(req, context, repos, node, rev)
File "/usr/lib/python2.7/dist-packages/trac/versioncontrol/web_ui/browser.py", line 629, in _render_file
content = node.get_content()
File "/usr/lib/python2.7/dist-packages/tracext/git/git_fs.py", line 527, in get_content
return self.repos.git.get_file(self.fs_sha)
File "/usr/lib/python2.7/dist-packages/tracext/git/PyGIT.py", line 660, in get_file
return cStringIO.StringIO(self.cat_file("blob", str(sha)))
File "/usr/lib/python2.7/dist-packages/tracext/git/PyGIT.py", line 500, in cat_file
_sha, _type, _size = self.__cat_file_pipe.stdout.readline().split()
ValueError: need more than 1 value to unpack
Searching the net I found many solutions, but none that had anything to do with the TracGit plugin.
Then I saw a news entry stating that Git support had been integrated into Trac as of version 1.0, so here's the solution: removing the TracGit plugin!
Seems like the plugin got priority over the new internal mechanism but at the same time was not compatible with Trac interna anymore.