Subversion

Thanks to everyone who weighed in yesterday on my version-control questions. I know it may seem like overkill, and I'm prepared to be made fun of, but I finally decided to go with Subversion (a/k/a SVN), which I'm running through Apache 2.2 with SSL on one of my boxes here.

A lot of factors came into play for me. We have several computers at home, and I like to be able to work on whichever one is convenient, which means it's nice to be able to grab the latest copies of drafts and my notes quickly from wherever I am. I need to be able to do this from outside our home network, in case I'm around the corner at the coffee shop, on the road, or over at the Writers Workspace. And since I obstinately continue to work in WordPerfect, I can't rely on solutions like Google Docs that are geared specifically toward Word files. Since I've been using CVS for years, SVN seemed like a natural step up for me, since it's similar but does a lot of things more smartly.

The coolest part of this whole setup, to me, is the SVN client I'm using, TortoiseSVN. This lets you access all the SVN commands from right-click menus directly in Windows Explorer. It also adds layover icons to the file icons so you can see at a glance what files and directories need to be committed. And SVN itself handles tasks like renaming and moving files and directories so much better than CVS, I wonder why I didn't start using it for code a long time ago.

I already use a free dynamic IP address from DynDNS to access my home music server from the outside world, and I'll use that to access my SVN repository from out there as well. The one slightly tricky thing that hung me up for a long time last night was writing a Perl script I could run on my laptop from the outside world to update the "svn" alias in my HOSTS file from an internal IP address to the current value of my network's dynamic external IP. That way I would never have to change the URL through which my laptop attempts to access the SVN repository.

Actually, it wasn't the writing of the script that was difficult so much as trying to figure out how to get it to run under the Administrator account in Windows Vista. Vista provides no simple mechanism for this, and it won't let a script update the HOSTS file unless it runs as Administrator. But this morning I found a power toy that enables this, I've tested external access by logging into our landlady's unsecured wireless network, and now I'm ready for field-testing.

Coffee shop, this afternoon!