Version 12 (modified by anonymous, 7 years ago) (diff)


Git Plugin for Trac


This is yet another plugin for Trac 0.10 which enables GIT to be used instead of Subversion for the trac:VersioningSystemBackend

Bugs/Feature Requests

As this is for now just a proof of concept implementation, it has quite some deficiencies, some of which exist as tickets already:

Improve performance of GitPlugin
It should be possible to see the branch in the timeline and for each changeset
shortrev_len does not work
Cannot detect GIT version: All git commands result in git usage output which is unparsable.
Enhance Documentation
Resetting HEAD on a remote branch causes GitPlugin to complain of missing changeset
UnicodeDecodeError on UTF-8 encoded filenames
Internal error if ticket text references SVN-like revision number (changeset)
GitError: GIT control files not found, maybe wrong directory?
post-receive hook is not working when default repository is speciefied
Browse branches as virtual top-level folders
File rename not supported
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 5-7: invalid data
Can't install plugin properly.
Browse with 'bare' repository fails
Invalid changeset link in ticket comments is produced by the post-receive-hook for multiple git repositories
filedescriptor out of range
Trac[git_fs] ERROR: GitError: Could not retrieve GIT version
Problem with Trac 0.12.2 and GitPlugin (BrowserModule)
Browse Source defaults to HEAD, I'd like to be able to specify a branch instead
PyGIT._get_branches fails with ValueError on commit messages with line feeds
missing links in messages
«No changeset HEAD in the repository»
Support for submodules in source browsing
Problem with cyrillic file name. (UnicodeDecodeError: 'utf8' codec can't decode)
git post-receive hook - remote: error: command not found
TypeError: 'NoneType' object is not subscriptable
GitPlugin not loading, error in
'Popen' object has no attribute 'terminate'
Source browser fails with SMB hosted git repository
WindowsError: (5, 'Access is denied')
GitPlugin crashed under Win7 while using cygwin
OSError: [Errno 10] No child processes
GitNode *must* throw NoSuchNode on invalid revisions for Bitten to work
GitPlugin on Trac 0.12 with Python 2.4
some problem with TRAC 0.12 and GIT (Apple Git-33)
TypeError: execv() arg 2 must contain only strings

...and other potential issues which aren't ticket-tracked yet:

  • does not highlight sha1sums automatically
  • will only work with filenames not containing newlines
  • ...

Existing bugs and feature requests for GitPlugin are here.

If you have any issues, create a new ticket.


Download the zipped source from here.


You can check out GitPlugin from here using Subversion, or browse the source with Trac.

An experimental branch of this plugin with a hacky caching feature and some bug fixes is available from here.

NOTE: This project seems to be unmaintained, the version from nanosleep seems better maintained (same as the “experimental” branch above).


Simply point your Trac instance to a local git repository:

repository_dir = /var/git/Test.git
repository_type = git

/!\ NOTE: "Test.git" needs to be the .git repo directory, not the directory that holds the .git

If installed globally, don't forget to enable the plugin:

gitplugin.* = enabled

Recent Changes

[7757] by hvr on 2010-03-07 18:16:57
GitPlugin: ported code from TracMercurial in trac:changeset:6461
[7756] by hvr on 2010-03-07 17:13:38
minor logging tweak
[7755] by hvr on 2010-03-07 14:00:01
GitPlugin: decode git paths to unicode strings; fixes #5357


Author: Herbert Valerio Riedel

Attachments (7)

Download all attachments as: .zip