Up-front disclosure: I'm one of the Trac devs.
I think you need to look at what you're trying to accomplish, what functionality will help you accomplish those goals and how that matches up with the available options, and look at the flexibility the system provides.
I think flexibility is where Trac really shines -- trac-hacks has a lot of plugins to add a lot of functionality (some better than others), and they aren't difficult to write; and the workflow is very configurable so it can match what you want your workflow to be. You can make it very simple (a ticket is either open, or it's closed), or as complex as you can devise, with side-effects at certain transitions, etc.
You can also ask questions in #trac on freenode; it's pretty low noise, and there are generally a couple people around during US business hours who can answer questions and discuss Trac stuff with you.
To really compare the various options, I'd suggest setting up a small example project in each, play around with it, and ask questions. But you really need to decide what matters to you to even get started.
git
already has a server, andgitweb
orcgit
are popular repository viewers. – Carlson