Care and Maintenance with CVS

What is CVS?

The Concurrent Versions System is a front end to the Revision Control System allowing multiple users concurrent access to the source file repository, while allowing them to make independent changes. The master source files are maintained in a repository, which may be located on another machine on the net. CVS will merge different changes made to the same file by different users. Merge conflicts (two simultaneous changes to the same piece of code) are announced to the user doing the merge, who then needs to resolve the differences.

Of course, while often used to maintain source code, CVS may be used to control any sort of ASCII (i.e. organised with lines of text, not necessarily restricted to just the ASCII character set) type file.

CVS is organised around the idea of modules, which are a collection of files related to a particular objective, such as a program, or library source code.

Access to the master files is obtained by checking out the code, which places a copy of the file(s) locally for the user, then editing it as appropriate, and finally checking the changes back in. (This is commit with CVS). CVS also allows importing or exporting code, specifically to/from off-site locations not otherwise conected.

The underlying revision control is provided via rcs, which allows recovering older versions of files, determining the difference between different versions, as well as tracking the reasons for each change. Another important feature is to display the differences between the version being edited by the user and the master version in the repository.


CVS is readily available in source code format. It is made available under the GNU General Public License. The source is available from The Concurrent Versions System homepage. However, you are likely to find a version with your software distribution.


Cryptic CVS Server (PServer) startup is a better solution than outlined below.