Tools I live by: Subversion

December 29, 2008

Oh crap. I’m a Configuration Management type. I wake up every morning hoping that all my wonderful builds succeeded, the sun is shining, all the developers magically started using good commit messages and there is an end to world hunger. Sadly, most days only one of those is true: the sun does sometimes shine over flyover country.  Maybe every now and then I’ll get a good commit message: why did this change occur and what change request (JIRA case/CollabNet SFEE artifact/etc) did this relate to.

Generally, developers want to commit as much as possible – reduces the chance they get the dreaded conflict, which means more work.  I’m totally kosher with that: commit early, commit often. Makes everyone’s life easier. And that is what I like about Subversion: it’s easy. Most everyone understands how to use it after a few hours, and developer types are up to speed quick. Works with all the major IDEs out of box or with a simple plugin (Visual Studio – I’m looking at you here).  If you’re still on CVS, you probably should be giving Subversion a look for a variety of reasons, which are spread all over the Internet, so I will not go into them.  What I really like about Subversion however is it’s scripting ability, and multi-site capabilities (in 1.5+).  Now you can use a few tools and setup a multi-site slave (still single master because off the complexities of a multi-master CM setup (I’ll save that one for later), but having local read slaves saves time).  The commit scripts are pretty easy to handle and code against – at a previous job we used a bit of Rational, and had to have two people dedicated to it for 160 users.  Subversion generally runs without issue, and doesn’t require the constant maintenance of Rational.  It also works on about every platform known to man, which is more than I can say for all the commercial products (Rational is probably best in the respect with Perforce close behind, the rest all lag heavily and many are dependent on Windows).  I could spend all day telling you why you need to use Subversion, but I figure you put little faith in my words.