Concurrent Versions System

from Wikipedia, the free encyclopedia
Concurrent Versions System
Basic data

Maintainer CVS team
developer The CVS team
Publishing year November 19, 1990
Current  version 1.12.13
( September 28, 2005 )
operating system Unix , Windows
programming language C.
category Version management
License GNU General Public License

Concurrent Versions System ( CVS ) is a software system for the version management of files, which is mainly used in connection with software source code .

CVS is no longer actively being developed. The CVS official website is no longer maintained.


The original CVS is a pure command line program, but at least one graphical user interface was developed for all common operating systems , for example TortoiseCVS and WinCVS for Windows , MacCVS for the Apple Macintosh and Cervisia for KDE under Linux . LinCVS and SmartCVS work on Windows , Linux and macOS .

CVS has long enjoyed great popularity, especially in the open source community. This is how it was used in most of the large open source projects. The software system is also used on the servers . However, it has been replaced by more modern version management systems such as Subversion or Git in most large open source projects . In the commercial environment, too, a replacement by more modern version management can be observed due to the no longer active further development. Above all, Subversion is used here, as it is understood as the logical successor to CVS with little conversion effort.


CVS simplifies the management of source code by storing all files of a software project in a central location, a so-called repository . Individual files can be changed at any time, but all previous versions are retained, viewed and restored. The differences between certain versions can also be highlighted. In this way, CVS helps to keep track of the individual versions of the files and the associated comments. In particular, it can be used to coordinate the work of the various developers on larger projects.

In simplified terms, the way of working is as follows: An employee on the project first fetches the current status of all files in a project from the repository. This is known as " check out ". CVS creates metadata that make it possible to identify which versions of the files were last checked out. Then the employee makes changes to one or more files. When he's finished, or has reached (for larger changes) a consistent intermediate state, he plays these new versions of changed files back into the repository, "check in" called ( from the English. Check in ). Problems can arise if several employees change a file at the same time. These problems can either be prevented from the outset (through lock , used in Revision Control System , untypical in CVS) or can usually be remedied relatively easily afterwards ( merge ), at least if different parts of a file have been changed. Possibly. Any conflicts that arise must be resolved manually. If you just want to download code, you can alternatively use the "Anonymous CVS Access" feature.

CVS uses delta coding to save space by only storing the differences between file versions rather than the entire version.

The repository can be located locally in a directory on the computer or on a server in the Internet. This remote access makes it easy for a development group spread across the globe to work together on a project. In addition to developer access, anonymous, read-only access is also permitted for many open source projects.

Origin and offshoot

The development of CVS began in 1989 as a further development of the RCS and the Source Code Control System (SCCS). In contrast to these, CVS is able to save several files at the same time, but the same file format is used as with RCS. However, CVS also has some limitations, for example when it comes to handling binary data and directories . The newly developed Subversion , traded as the successor to CVS, wants to fix this.

In addition to Subversion , which is partly conceptually different , there are various new or re-implementations of CVS that fix security deficiencies and offer other improvements. For example, there is a new development from CVS called CVSNT for Windows, which has already been backported for Linux. Similar to Subversion, this server system offers many improvements over the old CVS line of development. OpenCVS is a variant that is being developed under the cover of the OpenBSD operating system .

Many of the commercial configuration management tools are based on RCS or CVS.

See also


  • Karl Franz Fogel, Moshe Bar: Open Source Development with CVS. 3. Edition. Paraglyph Press, July 2003, ISBN 1-932111-81-6 ( read online )
  • Gregor N. Purdy: CVS Pocket Reference. 2nd Edition. O'Reilly, September 1, 2003, ISBN 0-596-00567-9

Web links

Individual evidence

  1. Contents of / ccvs / NEWS . (accessed on July 3, 2019).
  2. .