Earlier this morning, one of my projects subversion repositories got wedged. After figuring out that it was actually wedged (no GET response, no PROPFIND/timeout requiring a kill -9 on svn and svnadmin commands), I started playing with svnadmin. Still didn’t work. Hopped into #svn. Asked, was pointed to FAQ.
Copied current repository to another location before attempting anything else, since I’ve fucked up a BDB based subversion repository attempting to repair it before.
Attempted svnadmin repair /var/www/svn/rdfpython: failed with lots and lots of “PANIC” type errors.
Attempted svnadmin repair ~/newcopyofrepos: That seemed to work. An svnadmin verify ~/newcopyofrepos confirmed that it had.
Made another backup of the repos, removed it, copied the new ~/newcopyofrepos into place.
And the world was good again. A verify/checkout process both verified that the files were all in place, and trac started to work again, and all was well, good and happy.
However, I think that from now on, I may use the fsfs storage method rather than BDB, as this is certainly not the first time this has happened to me or anyone else, and I really think I’m just starting to not trust BDB for mission critical tasks, which is what I consider subversion. My version control is one of the few things that I don’t have completely backed up most of the time: files I can copy around easily, but databases of changes to files typically stay in one place. I could recreate the structure, but I couldn’t really recreate the history, and that’s important to me.
If anyone has any experience with fsfs SVN repositories over BDB based ones, I’d be glad to hear it.