views:

5488

answers:

11

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.

+2  A: 

Gitweb can be nice, but it doesn't have integrated ticketing or a wiki or anything like that.

Ben Alpert
+1  A: 

I found this when searching the other day, but I have not used it personally yet so I can not vouch for it.

http://www.indefero.net/

Angela
I tried to install this using MAMP on my Mac OSX. 4 hours later and no joy. Trying to get the dependencies of PEAR/PLUF framework to work with MAMP was a no go for me. Someone please let me know if they figure out how to get MAMP + InDefero to work. :)
program247365
A: 

I run Trac + Perforce, I would keep trying to get the GitPlugin to work.

Shawn Simon
A: 

gitweb is great and easy to setup, git gui isn't bad either

Brendon
+2  A: 

Assembla provides a wiki, tickets, and other things for free, and allows Github integration. If you don't want to use Github, you can use plain Git with Assembla (with all the goodies you get with any other project).

Pricing is cheap, too ("$2 per team member per month").

strager
I've used Assembla with SVN/Trac before and am glad to see that they have added GIT support. It's not quite what I am looking for but a great suggestion.
Paul Osborne
+4  A: 

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).

Michael Larocque
I work on a project that uses Git + Redmine, and it's great.
mipadi
+3  A: 

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.

Pat Notz
In small teams, one of the things I like about Trac is the timeline view. It is nice to be able to see what changes have been pushed to the main repo. It is often easier to open up the browser and go to the Trac site than to fire up gitk or the console. Often it comes down to driving motivation.
Paul Osborne
Good point. The Trac timeline is nice, especially when you can see commits interspersed with ticket updates, wiki edits, etc. Currently, only the GitPlugin (not GitWebPlugin) gives you that level of integration.
Pat Notz
A: 

By the way with InDefero, you can go the hosted way with 250MB free space and unlimited private/public projects. The hosted option offers Git and Subversion but sadly no Mercurial yet :/

A: 

Since this question was asked GitHub now has integrated issue tracking. Somewhat lightweight, but for me that's a bonus.

Will Robertson
A: 

Tip: A completely different way to get Trac ticketing functionality is ditz.

"Ditz is a simple, light-weight distributed issue tracker designed to work with distributed version control systems like git, darcs, Mercurial, and Bazaar."

Your tickets reside with your code. It's not possible to lose one and have the other; which is a good thing. The Trac-like website is generated by the ditz command-line tool.

I enjoy it.

olleolleolle
A: 

Github's Trac postreceive hook has now been fixed: http://support.github.com/discussions/post-receive-issues/118-trac-service-hook