Tuesday, May 09, 2006

The Modern Configuration Management System Solution

The de facto standard for source code version control is Concurrent Versions System or CVS as it is better known. Well, CVS has been around for a while and has a few flaws that most organizations just overlook. I used to work for one of those organizations that applied the "if it ain't broke, don't fix it" mentality toward source code version control. I have used PVCS, CVS, Teamsource, a few others and most recently Subversion.

CVS was good enough and it did what we required, most of the time. There were a issues with how CVS handles file renames, directory name changes, etc. which we just lived with like everyone else using CVS.

Well if you happen to use CVS today and just deal with all its binary file handling, file name change, directory handling flaws, I have some news for you. You should really consider migrating to the modern successor to CVS, Subversion. I had the opportunity to research, evaluate, test Subversion 1.3.1. I really should have done this a few years ago but now is as good a time any.

Subversion was designed to be a better CVS than CVS and I based on my experience they attained this goal. The primary reason for this is that I installed, tested and evaluated Subversion on Windows servers and it works as advertised. CVS is best installed and run on a Linux server. Subversion runs well in Linux and Windows.

Now I see why many of the Apache Software Foundation projects have switched to Subversion from CVS. Subversion handles binary files with ease and has all the nice GUI tools and Eclipse plugins that CVS has. I installed tested and really like RapidSVN, SmartSVN and TortoiseSVN. The Subclipse plugin for Eclipse 3.1 works very nicely. I did not find a good Netbeans 5.0 plugin which was my only disapppointment. Other than that, Subversion 1.3.1 is definitely ready for prime time. The Subversion website is an excellent source of information and tools available for Subversion. There are CVS to Subversion conversion tools which should make your transition smooth. I have not tried any of these repository conversion tools myself so I caveat my previous statement by saying your mileage may vary.

I found that the information in "Subversion UI Shootout" article is still relevant today. In the article "Setting up a Secure Subversion Server" which is geared towards Linux, the concepts can be applied to a Windows server deployment. For J2EE/Java EE environments, I found JavaSVN described in "Configuration Management in Java EE Applications Using Subversion" to be an excellent framework for Java server side development if you happen to need a servlet interface with your subversion repository.

For configuration management solutions today, I will be migrating everything I do related to configuration management to Subversion. It is definitely a better CVS than CVS and in my opinion, a good candidate for a modern open source configuration management system for more than just a source code version control system. I recommend that you use it for all your configuration management requirements if your organization is not adverse to open source technology. Good luck.

No comments: