I'm in charge of migrating our version control system from CVS to [Subversion}(http://subversion.tigris.org/) and it's been quite an adventure so far. Subversion (SVN), for those who don't know, is being pushed by the open source community as the successor to CVS, and it has several compelling advantages over CVS:
- Atomic commits: no half-committed changes.
- Ancestor tracking: Rename or copy a file? SVN remember where it came from.
- Cheap tags and branches: tags and branches don't really take up any disk space, so feel to go for it. Just follow some good practices.
- Revisions apply to the entire tree: it's not "revision 10 of file Foo" it's "Foo in revision 10 of the repository".
- Much more.
SVN has two installation options for actual storage of the repository data: file system (fsfs) or Berkeley DB (bdb). So far, it looks like bdb is.... PURE EVIL. Am I an expert? Nope, but here are the errors I've faced so far, before changing over to fsfs this evening:
svnadmin: bdb: PANIC: No such file or directory
svnadmin: bdb: PANIC: fatal region error detected; run recovery
Well, PANIC seems bad to me. I was able to run the following to recover from this:
svnadmin recover /path/to/repository
That seemed to fix that problem. Next up:
Berkeley DB error while opening 'uuids' table for filesystem
/path/to/repository
Cannot allocate memory: bdb: Lock table is out of available locker entries
Oh man, that doen't sound good. After a bit of googleage, I found that I could jack up the locker entries in /path/to/repository/db/DB_CONFIG, but that didn't work.
I ended up converting to fsfs by doing the following, and it's been smooth sailing so far:
$ svnadmin create --fs-type fsfs /path/to/new/repository
$ svnadmin dump /path/to/repository | svnadmin load /path/to/new/repository
I'll be looking at SwitchTower next to see if that will work for us.
1 Comments (from old blog):
At 12/19/2006 7:56 AM, thijs said…
Thanks that worked great! I installed Subversion on Debian with apt-get a week ago and it looks like it's a very old packag of SVN that still uses Berkeley DB as default storage system.
Comments on “Subversion: bdb veriation Evil?”
No comments have been left yet.