I had to shut down the server with my Subversion repository for a few days. As I felt like coding and I hate coding without some sort of revision control system in place, it was the time to check out some Subversion alternatives.
I dumped my Subversion repository (
svnadmin dump) and scp'ed it to another machine. Pretty much at random I picked SVK first.
It turned out what I did wasn't the right strategy for setting up a local repository - most distributed revision control systems prefer to use network connections to set up mirrors. I had possible to convert the dump back to Subversion database (
svk admin load does more or less the same thing as
svnadmin load), moving the imported files somewhere else, and mirroring that, using file:// protocol (
svk mirror followed by
svk sync -a).
That wasn't all, as one is not supposed to work on mirrors directly - the official way is to create a local branch (
svk copy), commit there, and sync later. Setup was a bit compicated, and
svk sync -a took over 15 minutes, but afterwards it was a pure pleasure.
Pretty much every single command I used in Subversion just worked, I only had to say
svk whatever instead of
svn whatever. Even
svnadmin commands are available with
svk admin. That's quite important, as I knew and liked Subversion already, and didn't really felt like switching paradigm more than necessary.
svk was also very fast once installed. That's also a nice thing, as I tend to commit every single new unit test separately instead of doing big commits every few hours.
Well, there's not much more to add - SVK just works, and without a lenghty adjustment period.
The best kittens, technology, and video games blog in the world.