Reasons to use Trac:
- It has been around for ages so it's pretty well known.
- It works with Subversion.
- Built-in Wiki.
- The milestones system works fairly well.
Why Trac sucks, IMHO of course:
- It's written in Python, a language I currently don't know nor have a (current) inclination to learn.
- It doesn't do git without a plugin.
- How do I get email notifications when something's changed in the wiki?
- How do I get email notifications when code changes are uploaded?
- Each project you want to manage with it gets its own separate install, which is very klunky. You have to log into each one separately (unless you set up a shared authentication system of some sort in the web server).
- Each project only gets one repository.
- The interface is klunky, e.g. clicking View Tickets brings you to a page where you first have to choose your filter rather than just loading the last one used or a default.
- No task associations so you can't do a parent-child dependency to indicate a completion hierarchy.
- The interface should allow for trag-n-drop changing of priorities.
- It isn't github or unfuddle or Redmine :)
Personally I recommend github for public projects where you don't need task management (I don't like Lighthouse), Unfuddle for closed projects or where you want good task management for your open project, or Redmine if you want full control and to host it all yourself.
Just thought I'd share that.