What is CVS?
CVS stands for Concurrent Version System. This is a version control system,
i.e. it allows you to keep multiple versions of source files. Concurrent means
that many developers can change the same files and then merge the modifications
they have made.
The unique feature of CVS is its ability to provide anonymous read-only
access to everybody connected to the Internet. Everybody can get the last
minute's sources of a project managed by CVS, as well as scan the previous
versions for a particular change in the sources. This and the fact that CVS is
released under the GNU General
Public License explain why CVS is de-facto the version
system for open source software (although please consider Subversion for new projects).
Further information and download instruction are available at the CVS
How does CVS work?
For the complete reference, read the documentation that comes with CVS. It is
only important here that the CVS server keeps the information about all
versions in the repository, while the working
directory on the client side contains only one particular version of
every file (most often the latest one) that is under version control (i.e.
which has its history saved on the server) as well as derived
files that are built from the sources on the client side.
The client and the server are supposed to communicate in order to exchange
the changes in the sources. However, the connection to the server is not
required for editing the sources and building the project.
What is CVS Utilities?
CVS Utilities is a small (at the time of writing) collection of scripts, mostly
in the Perl language, that allow you to
manage the files in the CVS working directory. You can tell which files are
under version control and which are not without even being online. You can
erase or move away all derived files in seconds. Don't even bother to run
"make maintainer-clean" - makefiles may be buggy or may need to
You can tune some parameters in the administrative files stored by CVS on
the client side. This will allow you to switch from one CVS server to another
without hassle with environment variables.
If you (or your editor) are careful enough to save the original copies of
the files you modify, you can create a patch without going online! Moreover,
since special care is taken to prevent irrelevant information (backup file
names, RCS paths, context for ChangeLog entries) from appearing in the
resulting patch, it is likely to be even easier to read and apply than the one
created by "cvs diff"!
Why separate utilities?
CVS is a client-server system. As such, it provides some functionality that no
separate utilities can provide. For example, when you add a file, you may want
to be informed that somebody has already created that file.
CVS is used not only over slow connections. Many people use it at work over
fast and reliable networks. It takes seconds to check out the fresh copy of the
whole repository. Usually this type of development doesn't require sending
patches by e-mail.
How free are CVS Utilities?
CVS Utilities are licensed under the terms of the GNU General Public License, Version
2, as published by Free Software Foundation
in June 1991.
The latest release is 0.2.6, released on May 31,
2013. User visible changes can be found in the NEWS file.
The mailing list has been closed because of spam. The size of the project
doesn't justify the overhead of setting up spam filtering. If spam is still
tolerated in your country, please write to your representative in the
legislature (if you are lucky to have one).
email@example.com - general discussion.
Tom Tromey (tromey at cygnus.com) - original code
Pavel Roskin (proski at gnu.org) - later changes