Concurrent Version System (CVS) is a software for managing versions of a software development. It was already introduced in 1989 as an open source project. It is used mainly for the administration of software source codes. Disadvantages are with CVS the lack of possibilities for the administration of binary data as well as the handling of directories. After CVS in earlier times extensive application found, it is replaced in newer time by the more comfortable version management system Subversion.
Concurrent version system (CVS) can be used under the following conditions
- Multiple developers working simultaneously on a parent project
- Distributed development of software
- Tracking of changes in the source code
- Documentation of software
- Restoration of older software versions
The central element of CVS is the so-called repository - i.e. a "container". This is used to store all the files of a project in a central location. For this purpose, CVS defines a self-sufficient directory for each project as well as a directory for general parameters for configuring individual user rights, for example. The stored files can be modified at any time. However, all previously stored versions can still be handled and, above all, restored. This is made possible by the fact that each file is first stored in the directory assigned to it and then provided with additional information. In addition to a general description of the file, this includes the differences to previous versions, the time of each change, documentation of changes as well as the name of the author and a version number, with which earlier versions can then be reproduced in a targeted manner.
CVS as a client-server application
CVS represents a client-server application. Here the repository is administered by a CVS server and the users use a CVS client, which then accesses the repository indirectly via the server. For access to the functionality of Concurrent Version System (CVS), in addition to the original form via the command line, there are extended graphical user interfaces (GUI) for many common operating systems.