This area is an archive and is no longer actively maintained. Information found on this page is likely to be extremely out of date and therefore highly inaccurate. We recommend the Ximbiot - CVS Wiki for up-to-date information about CVS and its associtated tools.

If you do find anything useful on this page that is not yet in the Ximbiot - CVS Wiki and you have the time, please add it!

Development of CVS

Development of CVS

Wondering who is responsible for CVS? Thinking about contributing to CVS? This page is about the process of developing CVS.

Interim releases

There is always a current major release, and usually a current minor release.

The major releases (1.10, 1.9, etc.) are exceedingly stable, and usually represent a major change from the previous major release. Usually some significant new feature has been added.

The minor releases (1.10.2, 1.10.7, etc.) are usually the best available version. It takes a significant amount of testing and thought for a change to make it from development to release. There are few cases where a later interim release was worse than an earlier release. Here is a list of bugs fixed in interim releases.

Interim releases are available from Cyclic's download site at http://download.cyclic.com/pub/

Various informational pages about CVS development

Resources to help you develop CVS or CVS-related software. This page also contains ideas and unofficial patches which primarily relate to interfacing external software to CVS.

Particular issues (containing patches, additional packages, ideas, and such):

Our unofficial patches page contains a few older patches which do not fit into one of the more specific categories.

The ideas page contains ideas for possible future changes to CVS. It is similar in spirit to the TODO file in the CVS distribution. The main difference between ideas and unofficial patches is that ideas have not yet been implemented.

Our Strategic issues page is for big, important issues.

The Reported Bugs page is similar in spirit to the BUGS file in the CVS source distribution.

The Testsuite page concerns the CVS testsuite, and is similar in spirit to the TESTS file in the CVS distribution.

Policies and Procedures

The main sources of information concerning CVS development are the HACKING and DEVEL-CVS files in the CVS source distribution. These files evolve, and in fact DEVEL-CVS was only added on 4 Feb 1997. So you might want to see below about getting the latest version.

We also have an essay by Jim Kingdon about the CVS development process.

Meet the CVS developers (list of developers, with an attempt to summarize what they have contributed to CVS).

History of CVS development

CVS 1.10 was code-named Halibut and discussed on this page, prior to its release.

Current development version

The current working version of CVS is available to all. First, the disclaimer. It may not be thoroughly tested. It may not even compile on your system. Unless you are helping to develop CVS or love getting the latest, greatest, and buggiest there is a good chance that you should be running a released version of CVS instead.

If you are wondering about CVS on a particular machine, look at the list of machines in the INSTALL file in the CVS source distribution. As INSTALL is continually updated, you may want to get the current working version. If you test CVS on a machine not listed, or you test a more recent version of CVS than the one listed, please send in an update as described in INSTALL.

If you notice files which are in the current working version (as described below), or mentioned in places like the ChangeLogs, but are missing from the interim releases, this probably means someone forgot to add them to DISTFILES in the Makefile.in. Please let us know about these problems, using the usual procedure for reporting bugs.

Cvsweb is the first mechanism for looking at the current working version of CVS. This provides a nice web-based way to browse the sources, and is definately the easiest to use (just follow the link). In addition to the CVS sources, cvsweb also gives access to the CVSROOT, in case you are curious how we have set up CVS ourselves (summary: very simply).

If you want to download a significant amount of source, however, cvsweb will be awkward. Instead, you may want to use anonymous CVS. First you login:

cvs -d :pserver:anonymous@cvs.cyclic.com:/home2/cvsroot login

CVS will prompt for a password; use guest. Then you are ready to check out the sources. The directory containing CVS is known as ccvs so to get all the sources you would run:

cvs -d :pserver:anonymous@cvs.cyclic.com:/home2/cvsroot co ccvs

NOTE: This will take quite a long time. If you don't need everything, just get the file(s) you want, with a command like:

cvs -d :pserver:anonymous@cvs.cyclic.com:/home2/cvsroot co ccvs/src/client.c

[Cyclic Home]

Derek Price, CVS developer and technical editor of Essential CVS (Essentials line from O'Reilly Press) , and others offer consulting services and training through Ximbiot.