Subversion

No, not the kind you are thinking of. It’s an upstart source control management system that is intended to address some of the shortcomings of the stolid, ubiquitous but aging CVS. These guys look like they have really thought it through from the ground up, deciding what are the important things for a SCM to do. One of the beautiful things about Subversion is that it versions directories. Moving or deleting files is no longer a big deal. If you check out a version where the file exists in that directory, you get it. If you check out a version after it has been deleted or moved, you don’t. In CVS, since the file history is attached to the file, you can’t do this. It is a huge hassle to move things around, which leads to people learning to live with bad directory organization since changing it is so much work.

I’ve been following this project from a distance for over a year. I tried a while back to install it on my Red Hat box from an RPM but it had library conflicts and wouldn’t go. Following this tip from my programming partner Darin I gave it another shot. It has matured a lot. I built it from the tarball source, and everything seems to be working fine. I have a test repository and did a few minor things to it and it all seemed to work right. I believe I’m going to start using it in earnest for my projects around the house. We’ll see how this goes, but I expect good things from it. I’d love if in a few years this becomes the defacto standard. They did a good job of keeping the interface as much like CVS as they could, so the learning curve of migrating to it is very shallow.