Introduction to CVS

CVS is the Concurrent Versions System. This is a version control system useful for projects using a central repository to hold files and then track all changes made to those files. These instructions install the client used to manipulate the repository, creation of a repository is covered at Running a CVS Server.

Package Information

Additional Downloads

CVS Dependencies


GDBM-1.8.3, Tcsh-6.15.00, OpenSSH-4.7p1, krb4, MIT Kerberos V5-1.6 or Heimdal-1.1 (for the GSSAPI libraries), AFPL Ghostscript-8.53 or ESP Ghostscript-8.15.4, and an MTA (that provides a sendmail command)

CVS will invoke a default text editor to create a commit message if the -m "Commit message" parameter was not used when changes are committed to a respository. CVS looks for the following text editors, in the order shown below, during configuration to determine the default. This default can always be overridden by the CVSEDITOR or EDITOR environment variables and can be specified directly by passing the --with-editor=<desired text editor> parameter to the configure script.

User Notes:

Installation of CVS

By default CVS is statically linked against the Zlib library included in its source tree. This makes it exposed to possible security vulnerabilities in that library. If you want to modify CVS to use the system shared Zlib library, apply the following patch:

patch -Np1 -i ../cvs-1.11.22-zlib-1.patch

Install CVS by running the following commands:

./configure --prefix=/usr &&

If you have teTeX-3.0 installed and wish to create DVI, Postscript, HTML or text docs from the documentation source files, issue the following command:

make -C doc html txt dvi ps

To test the results, issue: make check. This will take quite a while. If you don't have rsh configured for access to the host you are building on (or you didn't pass the --with-rsh= parameter to the configure script, some tests may fail. If you passed the --with-rsh=ssh parameter to enable ssh as the default remote shell program, you'll need to issue the following command so that the tests will complete without any failures:

sed -e 's/rsh};/ssh};/' \
    -e 's/g=rw,o=r$/g=r,o=r/' \
    -i src/

Now, as the root user:

make install &&
install -v -m755 -d /usr/share/doc/cvs-1.11.22 &&
install -v -m644 FAQ README /usr/share/doc/cvs-1.11.22 &&
install -v -m644 doc/*.pdf /usr/share/doc/cvs-1.11.22

If you created any additional documentation, install it by issuing the following commands as the root user:

install -v -m644 doc/*.{ps,dvi,txt} /usr/share/doc/cvs-1.11.22 &&
install -v -m755 -d /usr/share/doc/cvs-1.11.22/html/cvs{,client} &&
install -v -m644 doc/cvs.html/* \
                 /usr/share/doc/cvs-1.11.22/html/cvs &&
install -v -m644 doc/cvsclient.html/* \

Configuring CVS

Config Files

~/.cvsrc, ~/.cvswrappers, and ~/.cvspass.

Configuration Information

~/.cvsrc is the main CVS configuration file. This file is used by users to specify defaults for different cvs commands. For example, to make all cvs diff commands run with -u, a user would add diff -u to their .cvsrc file.

~/.cvswrappers specifies wrappers to be used in addition to those specified in the CVSROOT/cvswrappers file in the repository.

~/.cvspass contains passwords used to complete logins to servers.


Installed Programs: cvs, cvsbug, and rcs2log
Installed Libraries: None
Installed Directories: /usr/share/cvs and /usr/share/doc/cvs-1.11.22

Short Descriptions


is the main program file for the concurrent versions system.


is used to send problem reports about CVS to a central support site.


is a symlink to the contributed RCS to Change Log generator.

Last updated on 2007-04-04 14:42:53 -0500