Home Backup Project - Part 3: Subversion Clients
As part of the ongoing home backup project, I've been testing various SVN clients to make sure I have a good working application for both home and work environments. At work I run WinXP Pro and therefore use TortoiseSVN because, well, it's pretty much the best there is. I love the shell integration - it's near seamless. I have local stores from multiple repositories - development code, cross-departmental tools and scripts, my home's "tools" directory, and my home svn archive - all updated as I needed.
On the mac at home... well, that's a different story. I tried SCPlugin, which seemed to be the Mac version of Tortoise. While it started out looking that way (the icons showed up for existing checked-out repos), it wouldn't do a base PROPFIND for my local store, and then it crashed. Hard. And stopped working, even after a reboot. Why? I have no idea. That's the great thing about a mac... software either works or it doesn't, and SCPlugin doesn't.
I then tried svnX, which had some promise, but after 15 minutes of poking, I had no idea how to add anything to repository. No clue at all. I'm sure it's simple once someone tells you how.
Then SmartSVN. Same deal.. I couldn't add a file, just a directory, and that seemed wonky. It's probably me, not the software, but I wanted something usable enough that in a groggy stupor, I could update my local store and not need to think twice about what I was doing.
MacSVN also showed some promise, but it crashed on startup needing a newer version of Berkeley-DB than is available for the Mac. I want simple, and hacking up code I didn't write in the first place to use a non-stable version of another software package falls slightly out of scope.
Then, I went back to the folks at tigris and poked around their site. I found RapidSVN, which is a GUI front-end for SVN with some additional bookmark support. That's it... and somehow, this works so much better for me than any of the other options. You check out a local store and update it via finder (or any other file system tool, i.e. mv/cp/tar/etc.), then add/delete/commit as you need to through either RapidSVN or using the svn command line, and it all works together nicely.
This was my experience - I don't plan on maintaining any source code in this repository (for now), so my uses are pretty one-dimensional - it's a glorified password-protected file storage mechanism with an existing protocol for mirroring, versioning and access from anywhere.
After deciding on a method for utilizing SVN from anywhere, I was able to get my repository in good working order. The other major benefit to using SVN is that I can access the repository via a web interface, and when I need a file from anywhere, that sure is handy. The structure currently looks something like this at the top-most level(s):
- Disk Images
Of note, I plan to use svnsync locally on my svn server to keep a secondary mirror of the repository on an identical drive. There's a great wiki article on on Mirroring a Subversion Repository over at the OpenDS wiki.