In the past I have really enjoyed using Trac with subversion repositories hosted on some of my own servers. The integrated ticketing and online code browsing is very convenient.

I have used github for some of my public projects but I don't have the money to shell out for an extra service, espcially when I am already paying for remote VPS hosting.

Does anyone know of or have any experience setting up something like Trac with git version control? Specifically, I can already push to a remote server but I would like some web interface that allows me (and people working with me) to see that commits and current state of the codebase online without making the project public. I am aware of GitPlugin but have not been able to get it up and running successfully. Any other suggestions?

Integrated ticketing (and wiki) is desired but not an absolute necessity.

Edit:

After playing around with GitPlugin and Trac a bit more I have been able to get it up and running. The main problem was that I needed to explicitly enable the plugin for the trac environment by doing something like this in trac.ini:

[components]
# for version 0.10
gitplugin.* = enabled
# for version 0.11
tracext.git.* = enabled 

I may also try out Redmine and CGit as this seem like other pieces of software that do what I am looking for. Any other suggestions are welcome.


You should take a look at Redmine (http://www.redmine.org/). It has all of the features you mention and more. You can host it on your own vps (I do).


We use Trac and both of the two Git plugins -- the GitPlugin as well as the GitWebPlugin. See, we actually have three repositories (long story) and Trac is still limited to a single-repository. So, I wrote my own plugin that defines wiki syntax (Macros actually) for referencing a repository, branch or commit and these link to the GitWebPlugin links. I was also able to write some git hook scripts so that we can reference, close or modify Trac tickets in commit messages -- it's a modified version of the SVN commit hook that comes with Trac.

The main problem with the GitPlugin is that it's slow due to the lack of "libgit" library. It's not bad for small-medium sized projects but large projects are a pain. If you really need a speedy web interface you should really check out Cgit. Cgit makes it's own libgit so it's tied to a particular version of Git.

The truth, however, is that web based views of Git are not that useful except when you want to send someone a link (like in email or IRC). Because with Git you have the full repository in every clone you're much better off using tools like gitk or even plain ol' git log. The queries and grepping capabilities are really amazing and (obviously) fast. I find that Cgit and GitWeb are really only useful for sending links to commits and that's pretty rare.