Keith's Blog

Source Control

The concept of source code control is a fairly old one. It consists of a system that allows people to modify a source file, compare differences to an old version, and to check in that file. This allows collaboration between multiple engineers on the same source.

I have used many different sorts of source control systems. In order that I met them:

Visual SourceSafe: A Microsoft product, strictly GUI. It's setup was kind of a nightmare, with file shares and user permissions; but once it worked, it was rather simple to use. You quite simply checked in and out files, and you could download different versions (branches). I liked it, and it integrated into Visual Studio so nicely.

CVS: (Concurrent Versioning System): CVS is great because it's pretty easy to set up, quite configurable, and fairly lightweight. It has the concept of multiple checkouts and merging, so two people can work on the same file at the same time. I only ever had two problems with it.
1. The file-based locking the server used kept messing up, requiring reboots.
2. If the repository changes, and you have modified files, you might have to manually edit CVS files to update the repository location.

RCS: (Revision Control System): I used this for quite a while at my new job, and it's a lot like CVS, but a lot simpler. It has less options, and requires quite a bit of configuration and environment variables. It's also a very old system, dating back to the early 80s.

Subversion: I've been using this on my new project for a few months now, and I think it's great. The command line is beatifully simple, requiring no more than "svn commit file.cpp" to commit a file. It's fast, widely supported, and very featured.

StarTeam: This is the new system that my product is moving towards. It's primarily a Windows GUI product, but our source control guy has written scripts to allow for command line usage. Although he tried to make it as simple as Subversion, it isn't quite so. The tool requires info files to be created for every view/project you check out, and the # of command line options is a little staggering. I imagine I'll get used to it, but I would have prefered Subversion, oh well.



0 Comments:

Post a Comment

<< Home