This document is an overview of the source code control system called CVS. Note that CVS is pretty much deprecated and is replaced with Subversion (SVN), which allows for atomic commits. Both cvs and svn are open source source code control systems (SCCS).
CVS uses a directory structure for version control and stores diffs in a csv-specific directory called X with is located in each directory where CVS is performing SCCS activities. Files are checked out of the repository using the checkout command (abbreviated to co). Files are added into the repository with checkin (ci) and existing fles are updated with the update command.
CVS works on a per directory basis and does not support the concept of change lists and atomic commits. This is the primary reason why sccs like svn are preferred over csv. In it's favour though, cvs is useful for small groups of contained files, such as a group of documentation or source code that is limited to a single directory.
Like many unix applications, cvs supports the notation of a runcommand file (an rc file). This is named .cvsrc and is typically located in the user's home directory. CVS also supports remote depot so that users many checkout, add and update files in a cvs repository located on a remote server. This type of remote server connection is not at all client-server. Instead cvs acts like a file transfer program, where files on the remote cvs repository are transfered back and forth.
The most common interactions for cvs are the add a file or group of files into the cvs repository, check them out for edit, perform updates and diffs and similar. These commands are are:
There are a huge variety of source code control systems. Many of these are commerical applications but there are a also many that are opensource and are often either comparable to commerical systems in terms of feature sets. The most common sccs brieifly discussed. For more detailed comparission of sccs, see this document.
Stuart Moorfoot © 5 February 2008 foo@bund.com.au