As a software developer, as well as a member of a software development team, version control is a critical aspect to the work I do. Over the years I’ve used several different version control providers with varying degrees of success.
The majority of my professional life I’ve worked with Visual SourceSafe (VSS). Although the experience hasn’t been stellar, I’ve actually had a surprisingly low number of issues with VSS…until recently. At home I’ve used VSS, Vault, and Subversion. Since at home it’s just me I don’t have many hard core requirements.
Ok, so back to the recent problems with VSS. Every since we’ve been using .NET 2.0 (which started with early betas) we’ve been having a lot of issues. I should note that some of these issues where specific to the VSS integration within VS.NET.
- Get latest takes a long time, and often hangs
- The pending checkins window takes forever and a day to come up and often hangs VS.NET
- While checking in files VSS bombs out which results in the repository becoming corrupted
- Repeated corruption problems
- Merge changes doesn’t exactly merge (sometimes)
Over the course of the last several months we’ve been talking a lot about moving to some alternative source control providers. Since almost everyone on the team had either had very good experiences with Subversion, or heard of people having very good experiences it came up as the best option in most of our conversations.
We’ve been running on Subversion for a couple weeks now and I’ve been very impressed. The top advantages that we’ve seen are:
- Must faster then VSS
- Checkouts over the VPN used to be impossible but are now very doable
- Our build time within CC.NET has gone down considerably (on the order of 3–4 minutes)
- TortoiseSVN is a nicer interface then VSS (integration with the shell is top notch)
- Atomic commits are a very good thing.
- Easy to setup – we were up and running in the matter of a half day
- Setting up the subversion repository took 3–4 hours since we had to figure out how to install it
- Importing our existing source took about 5–10 minutes
- Updating our continuous integration environment took about an hour. Most of that time was spent perusing the CC.NET help and trying to figure out why autogetsource “wan’t working” with subversion. It turns out that you have to do the initial checkout yourself on the build machine in order for this to work.
Funny side note: while spell checking this post BlogJet wanted to change VSS to ASS 