Travels on the Source Control Highway

Whether you love your source control system or it drives you completely mad there's no denying it's one of the most important tools you have as a software developer. Over the years I've used several source control software packages, even going so far as to dabble with writing one of my own. They've all had their pluses and minus but I've finally arrived at one I'm satisfied with.

My source control software experience began when I took my first job as a software developer in 1999. That system was PVCS Version Manager. I don't remember exactly what version of PVCS we used then but my first impressions were not positive. It was written in Java and the UI was horrific. Every task was painful and files would sporadically appear locked forcing the need to contact the administrator (which eventually became me). In short, I hated it. Our company eventually moved to a newer version of PVCS which improve the situation but still it wasn't close to even a "good" rating.

Over the next few years as a programmer I came to realize I needed a source control system for my personal code. I've always programmed away from work for my personal entertainment and to improve in my chosen craft. I frequently found the need to look at code I'd written in the past and unless I'd backed that code up to physical storage (i.e. zip) I was stuck.

The hunt began.

The first source control system I tried for my personal use was Visual Source Safe in 2003. I procured a copy from my employer and created the repository on server at home. The interface was MUCH better than PVCS and it integrated seamlessly with Visual Studio (which I'd also just started using). I was initially pretty happy with VSS. That feeling didn't last long. In short order I came to loath it. File corruption issues were rampant and I lost a number of files to them. Some searching on the web showed me I wasn't alone. Two tongue-in-cheek quotes I found on the web during these searches stuck with me, "Visual Source Safe, Microsoft's source code destruction system" and "Visual Source Safe is the perfect source control system for teams of one or fewer developers." Funny stuff but unfortunately a little too true for comfort.

Next up was SoureGear's Vault. Vault was free for up to five developers and the reviews I'd found on it were all pretty positive. I installed it on my home server and migrated my code. It turned out to be a solid system and I used it for several years without significant issues. The integration with Visual Studio wasn't terrific at the time but I worked around that without much trouble.

Around 2010 I'd come to the conclusion I needed a source control system that was accessible across the web. SourceGear Vault had been working well for me for quite a while but it was installed on a server in my house and I routinely found myself wanting to perform source control activity from a remote location. After searching for an affordable web enabled solution (i.e. free) I came across the site ProjectLocker. They offered free hosting for git and svn repositories for small teams. I experimented with both git and svn but eventually went with svn. Both systems relied heavily on command line for their interaction. Some people love that but I prefer a good UI. I found Tortoise which provided decent UI wrappers for both git and svn but I felt the svn version was superior. I migrated my code (again) and quickly came to love having remote access to my source control repositories.

Around the same time we finally moved away from PVCS at work and started using Team Foundation Server (TFS). Team Foundation Version Control (TFVC) almost immediately became my favorite source control system. It was rock solid and perfectly integrated into VS. TortoiseSVN worked well for me but I often lamented over the lack of integration I had between my source code repository and the actual code as I worked on it in VS. At the time TFS was several thousand dollars and had no web capable client so I continued working with what I had.

Late in 2012 Microsoft previewed Visual Studio Online which sported Team Foundation Service, a web accessible version of TFS. Even better the service was free for up to five users. I jumped on board right away, migrated my code (again) and haven't looked back.

Tonight I committed the two-hundredth changeset to my fifth (and hopefully last) personal source control system. It's been a long and bumpy road but I'm finally truly happy with what I'm using.