Having recently started to get more serious about development at home, I decided to install a couple of different revision control programs and give them a whirl.
First, I installed Perforce. Perforce is a commercial version control system, but it’s free to use for up to 2 users and 5 client workspaces. I was already familiar with Perforce from my time at Obsidian, but that was from a user perspective — I was curious to see if setting up and administering a Perforce database was also straightforward. Fortunately, it is pretty straightforward — I was able to get things set up and working in minutes, and haven’t had any hiccups in my (admittedly simple) use of it so far. It gets two thumbs up from me.
Next, I installed Subversion. This is the de-facto replacement for crusty old CVS, and it’s come a long way in the last few years. I installed it via pre-packaged binaries, and also added the Tortoise SVN Windows shell plugin and the VisualSVN package. My first impression of Tortoise was negative — the installer caused a problem with Windows Explorer that forced it to restart. Considering that shell plugins can cause a wide variety of mayhem, this is not an encouraging sign, even less so considering that my past experience with Tortoise (several years ago) resulted in the same strange issues. I haven’t used it for a project yet, but I’m somewhat discouraged by the fact that it does not integrate with the MS SCC API, and their FAQ response regarding SCC API support is just plain incorrect in parts — Perforce supports atomic transactions as well as the SCC API, and I haven’t yet seen the case where you would want to mix source control providers within the same solution. I’ll have to play around with this some more…
A third option I wanted to try was SourceGear Vault. I’ve never used it before, but it seems to bill itself as a drop-in replacement for the much–maligned Visual SourceSafe. Unfortunately, it uses IIS and SQL Server as its back-end, which I don’t have (or want, at least for now) installed on my machine, so I couldn’t set up my own server and had to settle for checking out the demo server. My impressions were not super great — the demo server was slow, leaving the client unresponsive in many cases. While there appears to be support for atomic transactions, this only seems to include checkins — it does not include delete, rename, or other operations. This is really a killer problem in situations where you have even a small number of people working with a project — it adds “friction” to the seemingly simple tasks of reorganizing files, thus making people reluctant to do them (and more likely to put up with bad organization). The SourceGear website bills their products as solutions for “small and midsize teams,” but with the aforementioned weaknesses (and readily-available alternatives) I would hesitate to recommend Vault for anything more than a single developer. Fortunately, a single-developer license is free.
I may try a few other options when I have the chance, so there may be a follow-up to this in the future. (After all, I still need to play around with Subversion some more.) But so far, it looks like I’ll be sticking with Perforce.