Generated by DeepSeek V3.2| Concurrent Versions System | |
|---|---|
| Name | Concurrent Versions System |
| Developer | Dick Grune |
| Released | November 1986 |
| Latest release version | 1.11.23 |
| Latest release date | 08 May 2008 |
| Operating system | Unix-like, Windows |
| Genre | Version control |
| License | GNU General Public License |
Concurrent Versions System. It is a pioneering client–server revision control system that was instrumental in managing source code for collaborative software development projects throughout the 1990s and early 2000s. Originally developed by Dick Grune as a series of shell scripts, it evolved into a full-fledged system that introduced many developers to concepts like repository management and conflict resolution. While largely superseded by newer systems like Subversion and Git, its design and terminology profoundly influenced the field of software configuration management.
The system was created in 1986 by Dick Grune, who was then a professor at the Vrije Universiteit Amsterdam. He initially built it as a set of scripts atop the Revision Control System to facilitate collaboration on the Amsterdam Compiler Kit project. The code was publicly released to the Usenet newsgroup comp.sources.unix in November 1986. Subsequent development was significantly advanced by Brian Berliner, who rewrote Grune's scripts in the C programming language and added the critical client–server architecture in 1989 while at Prisma, a company later acquired by Sun Microsystems. Key maintenance and development were later taken over by other contributors, including Jeff Polk, and the software was distributed under the GNU General Public License.
The core design centers on a central repository that stores a complete history of file revisions and metadata. It employs a delta encoding technique, storing only the changes between successive versions to conserve space. The architecture is modular, separating the client tools from the server processes, a design that allowed for network-transparent operation. This separation was a significant evolution from earlier systems like the Source Code Control System and enabled distributed teams, such as those on the Linux kernel project before its move to BitKeeper, to collaborate more effectively.
A typical workflow begins with a user performing a checkout operation to create a local working copy from the central repository on a server like CVSd. The primary command to record changes is commit, which uploads modifications to the repository. To update a local copy with changes made by other developers, the user executes an update command. The system automatically handles the merging of non-conflicting changes, but flags conflicts that require manual resolution, a process familiar to users of later systems like Apache Subversion.
The system supports branching, allowing developers to create divergent lines of development, such as for experimental features or release maintenance, which can later be integrated. Merging changes from a branch back into the main trunk, however, was often cited as a complex and error-prone process. This limitation, where merge history was not rigorously tracked, became a key motivation for the development of next-generation tools including BitKeeper and ultimately Git, created by Linus Torvalds.
Communication between the client and server uses a custom protocol, typically over RPC connections, with the server process often being CVSd. Authentication could be integrated with system services like PAM or rely on the underlying SSH protocol for encrypted access. This model allowed servers to run on various Unix-like operating systems, including BSD and Linux, while clients were also available for platforms like Microsoft Windows through implementations such as CVSNT.
It achieved widespread adoption in the open-source software community, hosting major projects including the FreeBSD and OpenBSD operating systems, the GNU Project's toolchain, and the initial development of Mozilla Application Suite. Its use by the Eclipse Foundation and the Apache Software Foundation for projects like Apache HTTP Server was common before migrations to Apache Subversion. The system's legacy is evident in the terminology and concepts absorbed by successors; its limitations regarding atomic commits and file-based versioning directly informed the design goals of Subversion, developed by CollabNet.
Category:Version control systems Category:Free version control software Category:Software using the GNU GPL license