Version Control Recovery

23:40 Mon 04 May 2009
[, , , , ]

Last year, the server with my Subversion repository on it died suddenly. I’ve made several attempts to revive it, none of which have worked. I tried to get the data off of it, but had trouble doing this as well. Having been frustrated a number of times, I gradually got used to not having it… which is something I should have fought harder against.

Yesterday, with a lot of help from my brother, I finally got the repository data off of the machine. This ended up being a pretty complicated endeavor, ultimately involving using power supply units from two machines (one machine doing nothing but giving the PSU the “turn on” signal) and wiring the drives into the RAID controller from the first machine, then going through a process of trial-and-error to get that wiring right. Niall has a lot more experience with this kind of thing, and so it took a while, but not the forever it would have taken me to do it on my own. So, eventually, we got the correct volumes mounted, and we got internet access, and I was able to copy the repositories out.

My Subversion repositories are flat-file, and since I use the svn+ssh protocol, there wasn’t any setup on the other end. All I had to do to get my local copies to work with them was to use svn switch --relocate to tell them where the repository lives now.

One bummer is that in the time the repositories were unavailable, I’ve done a bunch of file renaming, and will now have to write some scripts to get Subversion to track those renames as part of its file history. That’s not going to be too hard, I suspect. I could write a shell script to do this, but I think I’ll do it in Python instead, because I haven’t done much Python filesystem manipulation and it wouldn’t hurt to know that.

The other thing this reminds me, as I check in tons of RTF files, is that I really wish I could find a good editor with a good plain-text file format. Recent searches haven’t turned up anything new, sadly.

Most importantly, though, I’m extremely happy to have my repositories back. (And this eliminates a dependency that was in the way of work on sfmagic.org…)

Leave a Reply