Version 27 (modified by rupert thurner, 9 years ago) (diff)


Git Plugin for Trac


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


  • Browsing source code in a Git repository via the TracBrowser
  • Viewing the change history of a file or directory using TracRevisionLog
  • Performing diffs between any two files or two directories
  • Displaying submitted changes in the TracTimeline (0.11)
  • (Optionally) caching TracChangeset information in Trac's database (0.11)
  • Caching Git commit relation graph in memory (0.11)
  • Using the TracSearch page to search change descriptions (0.11)
  • Annotation support, also known as "blame" operation (0.11)
  • Interpretation of 40-character wide hex-strings as sha1 commit checksums
  • ...

Example Sites

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:

No results

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

  • does not highlight sha1sums automatically
  • issues with filenames containing newlines (seems to be a Trac bug)
  • ...

Existing bugs and feature requests for GitPlugin are here.

If you have any issues, create a new ticket.

Download, Source

Download the [download:gitplugin zipped source], check out GitPlugin from Subversion, or browse the source.

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


Simply point your Trac instance to a local git repository:

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

## the following is only for the 0.11 branch
## let Trac cache meta-data via CachedRepository wrapper
cached_repository = true

## disable automatic garbage collection for in-memory commit-tree cache
persistent_cache = true

/!\ NOTE: the Test.git above needs to be the .git repository directory (i.e. the one containing the file HEAD and config), not the working tree directory that holds the .git/ folder.

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

# for plugin version 0.10
gitplugin.* = enabled

# for plugin version
tracext.git.* = 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
Contributors: Hans Petter Jansson

Attachments (7)

Download all attachments as: .zip