Problems with Trac? Switch to FSFS
I’m head over heels in love with Trac, and have been for about 6 months now. It really is best-of-breed software: it neatly integrates a wiki, a simple bug tracker and a Subversion repository browser with clean markup, a nice default design and a learning curve for new users that can be measured in minutes. No wonder it’s started to show up all over the place.
The software has only two disadvantages. The first is that it’s hideously difficult to install thanks to the myriad of dependencies (although apt-get on Debian or Fink on OS X go a good way towards lessening the blow). The second is that if you’re using BDB and you’re not careful it can corrupt your repository. Thankfully this corruption isn’t permanent (you can revert it with svnadmin recover) but it’s still very, very annoying.
Happily, a solution exists to problem two. Subversion 1.1 introduces a new storage mechanism called FSFS. The advantages and disadvantages are discussed in this advocacy document, but the key advantages as far as Trac is concerned appear to be “Write access not required for read operations”, “Little or no need for recovery” and “No umask issues”. Switching a BDB Subversion repository over to FSFS is short and painless, and provided you have up-to-date Subversion/Python bindings Trac will be able to access the new repository without needing any other changes at all. I’ve made the switch on my local machine and the weird corruption and performance issues I was having have vanished without a trace.
For the record, the trick to successfully installing Trac with Fink is to make sure it’s pulling from the “unstable” tree. That will give you Subversion 1.1 (with FSFS support) and allow you to install the trac-py23 package which should sort everything out for you. The instructions on the Trac wiki cover the essentials, but be sure not to miss the troubleshooting note about using a custom shell script in place of the regular trac.cgi.