CVS

I feel it’s time to learn something new, so I chose to learn about CVS. I’ve seen it used by developers on their open-source projects. The developers of PHP are using this system to keep track of changes made by other developers.


CVS stands for Concurrent Versions System. A version control system where 2 or more developers can work on a single file without affecting one another. When both developers make changes on the same section of the file, an conflict occurs and the overlapping code is marked by the server. Either developer then has to manually resolve the conflict.


cvs also helps you if you are part of a group of people working on the same project. It is all too easy to overwrite each others’ changes unless you are extremely careful. Some editors, like gnu Emacs, try to make sure that the same file is never modified by two people at the same time. Unfortunately, if someone is using another editor, that safeguard will not work. cvs solves this problem by insulating the different developers from each other. Every developer works in his own directory, and cvs merges the work when each developer is done.

To get my own CVS, I downloaded the CVS server and client for Windows. Installed the server first, a bit of configuration, then install the client. Now, I’m using WinCVS as my CVS GUI client. You can do without a GUI but for a newbie such as myself, I guess it’s better to start off with a GUI client. Quite tough at first. Lots of options, buttons and I have no clue where to start with. But after an hour, I managed to figure things out a bit and had my first try at committing changes to the repository.

The repository, located on the server, is where all the files that you want version-controlled goes to. After setting up the server connection settings, logging in, I did an “Import Module” on the folder containing files that I want to have in the CVS. A tick appears on the folder which I assume, means it’s marked for CVS. Then I tried editing the files. Configured WinCVS to launch my favourite crimsoneditor for file editing. Added a few lines, saved, the file appeared red in WinCVS which means it was modified.

Right clicking on the file, we are presented with many options but I will only talk about the first 2, “Update Selection”, “Commit Selection”. I assume Update means to update your local copy with the latest copy on the CVS server. Commit, as I have tried, updates changes you made, to the server. The version number of the file, gets incremented each time I commit changes. You can include a comment when you commit a change, this helps you and other developers to know what has been changed.

There are other features that I have no idea, how it works, but I’m going to take this slow and steady. The above is just my experience with CVS today. There may be errors somewhere, so do feel free to point it out by posting a comment. [:)]

CVS Server -> CVSNT
CVS Client -> WinCVS
CVS Server Installation guide
CVS Manual -> HTML Cederqvist for CVS
Some good links for beginning CVS

Leave a Reply

Your email address will not be published. Required fields are marked *