CVS: Concurrent Versioning System

The Tutorial

CVS can be used to maintain code being developed in a distributed environment. This tutorial presents the basic information needed to use CVS. If you are begining a project, and need to know how to set up CVS, see Getting started (not currently available).

NOTE: Due to the wealth of online information available, we present only the most basic information here, and provide references for further investigation. A best first stop is Commonly used CVS commands(below).

Environment variable CVSROOT must be set to the root of the master source tree (MST). Alternatively, use the CVS -d option to specify the MST. CVS is location dependent. If you are in a subdirectory of yoursource tree when you issue a command (e.g. commit), the command will apply to the subtree rooted at that directory.

CommandMeaning
CVS add filename Add file to MST.
CVS commitMerge code with MST.
CVS checkout directory in MST Create local copy of (all or part of) MST.
CVS update Update local code from MST (see codes below).
CVS release Does nothing to your copy of the source tree (unless you specify the -d option), but it notes that you've released the source code.

Update Codes:

U File was brought up to date with respect to the repository. You haven't changed the file, or the file is a new one.
A File has been added to the source tree in your directory (using cvs add) and will be committed when you do cvs commit.
M File was modified
C A conflict was detected between your changes and changes in the file in the MST. The file is now the result of the best effort (using rcsmerge) to merge the two sets of changes; your original is in .#file.version.
? File is in your directory but not in the source tree. Nothing happens to it.

Other Sources of Information:

Commonly used CVS commands GNU Emacs Manual - Version Systems
CVS Training Manual CVS Mailing List (by thread)
CVS--Concurrent Versions System An example, using Telltale
binary: /usr/cs/bin/cvs man page: /usr/cs/man/man1/cvs.1

RSC 7/11/96