1.1 What is CVS?
CVS is a version control system. Using it, you can
record the history of your source files.
For example, bugs sometimes creep in when
software is modified, and you might not detect the bug
until a long time after you make the modification.
With CVS, you can easily retrieve old versions to see
exactly which change caused the bug. This can
sometimes be a big help.
You could of course save every version of every file
you have ever created. This would
however waste an enormous amount of disk space. CVS
stores all the versions of a file in a single file in a
clever way that only stores the differences between
CVS also helps you if you are part of a group of people working
on the same project. It is all too easy to overwrite
each others' changes unless you are extremely careful.
Some editors, like GNU Emacs, try to make sure that
two people never modify the same file at the
same time. Unfortunately, if someone is using another
editor, that safeguard will not work. CVS solves this problem
by insulating the different developers from each other. Every
developer works in his own directory, and CVS merges
the work when each developer is done.
CVS started out as a bunch of shell scripts written by
Dick Grune, posted to the newsgroup
comp.sources.unix in the volume 6
release of July, 1986. While no actual code from
these shell scripts is present in the current version
of CVS much of the CVS conflict resolution algorithms
come from them.
In April, 1989, Brian Berliner designed and coded CVS.
Jeff Polk later helped Brian with the design of the CVS
module and vendor branch support.
You can get CVS in a variety of ways, including
free download from the Internet. For more information
on downloading CVS and other CVS topics, see:
There is a mailing list, known as [email protected],
devoted to CVS. To subscribe or
If you prefer a Usenet group, there is a one-way mirror (posts to the email
list are usually sent to the news group, but not vice versa) of
[email protected] at news:gnu.cvs.help. The right
Usenet group for posts is news:comp.software.config-mgmt which is for
CVS discussions (along with other configuration
management systems). In the future, it might be
possible to create a
comp.software.config-mgmt.cvs, but probably only
if there is sufficient CVS traffic on
You can also subscribe to the [email protected] mailing list,
described in more detail in Dealing with bugs in CVS or this manual. To subscribe
send mail to [email protected]. There is a two-way
Usenet mirror (posts to the Usenet group are usually sent to the email list and
vice versa) of [email protected] named news:gnu.cvs.bug.