Historically, I've kept a lot of data for quite a few projects in "monotone":http://venge.net/monotone/. I kept it all in one big database. This worked well, until it didn't .
* I hit the the magic 2GiB mark where offset_t wraps unless _FILE_OFFSET_BITS=64 was defined at compile time.
* One of my boxes decided to start swizzling bits to one of the disks in the raid1
So, I decided to start keeping all of the different branches in their own databases, and using monotone usher to proxy for them.
However, with 40 branches this is a bit of a maintenance problem. So I created some automation to template out "runit":http://smarden.org/runit runfiles and an usher config file. These run files include running usher, doing period db_checks, and syncing to other servers for a particular branch.
The scripts can be found in the _org.mudshark.jack.proj.mtn-metaserver_ branch on the _mudshark.org_ monotone server. The README file contains setup information.
*Note:* the db_check runfiles currently don't work, because I'm having trouble authenticating to the usher admin interface in order to shut
down the servers so they can be fscked.