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.
More recent articles
- ChatGPT should include inline tips - 30th May 2023
- Lawyer cites fake cases invented by ChatGPT, judge is not amused - 27th May 2023
- llm, ttok and strip-tags - CLI tools for working with ChatGPT and other LLMs - 18th May 2023
- Delimiters won't save you from prompt injection - 11th May 2023
- Weeknotes: sqlite-utils 3.31, download-esm, Python in a sandbox - 10th May 2023
- Leaked Google document: "We Have No Moat, And Neither Does OpenAI" - 4th May 2023
- Midjourney 5.1 - 4th May 2023
- Prompt injection explained, with video, slides, and a transcript - 2nd May 2023
- download-esm: a tool for downloading ECMAScript modules - 2nd May 2023
- Let's be bear or bunny - 1st May 2023