Version Control

I have recently been looking very seriously at the issued of software version control.  This is probably the least interesting topic on the face of the earth to anyone but developers, but if you are a software developer, your version control system is almost more important to you than your computer.  I currently use CVS at home and at work.  Like most CVS users I am starting to see how it could be improved.  Reality is that the only serious advantage of CVS is that it works… and it works with just about anything.  There are literally hundreds of scripts, programs, UI’s, and toolkits that work with CVS. 

Here is feature comparison between ten or so of the most popular version control systems.  Another article on CVS and its two main successors can be found here.  One of the biggest debates concerning version control is the use of distributed vs centralized models.  Diagnosing svn is an article by Tom Lord, one of the gnuArch developers (a distributed version control system.) Un-diagnosing svn is a response to the previous article by Greg Hudson, one of the Subversion developers (a centralized version control system.)

I am still working out an opinion and making a decision on which version control system I will be moving too in the future.   At this junction I am leaning toward gnuArch.  I don’t generally like the BSD license (which is what Subversion is distributed under) and it doesn’t seem like more than a minor improvement over CVS.  In addition Subversion feels “overweight” for what it does and really lacks the simplicity of design that is common of Unix type applications.