CVS Pocket Reference

Terminology

Term Definition
Module Typically, the CVS name for the development project directory
Checkout The action of downloading a module the first time
Commit The action of submitting a change in one or more files to CVS
Diff A list of differences between two versions of a file or a set of files
Vendor Tag Indicates the supplier of this module - used for branches naming
Release Tag Indicates the release version - used prior to merging branches

Remarks

Every path is relative to the $CVSROOT. A CVS Root directory resembles this: :extssh:username@cvs.domain.com:/var/lib/cvs Almost all commands act recursively (all the commands in this document act like that).

Create a module

To create a module on the repository: $ cvs import [-m "Comments…"] path/module_name vendor_tag release_tag This will also import all files from the current directory, recursively.

Checkout

To grab the latest version of the files: $ cvs checkout module_name This will download all the files of the module into the current directory. WARNING: This will synchronize the local folder with the remote one. This means that every file in the local folder will be overwritten or DELETED if they do not exist on the remote folder!

Commit

To commit your changes: $ cvs commit [-m "Comments…"] [files] If you don't specify a comment, your default editor will be loaded allowing you to enter a comment (it is mandatory to enter a comment!). If you don't specify a file, it will commit every files under the current directory.
This article was first written by Bruno Dusausoy in October 2003 for
the BeezNest technical website (http://glasnost.beeznest.org/articles/84)