- Home
- Version Control Software
- Concurrent Versions System
Concurrent Versions System
What it is
Concurrent Versions System, or CVS, is a version control system for maintaining the history of source files and documents. It stores versions as differences within a single file to reduce storage use. Developers work in separate directories, and CVS merges their work when they are done. In its client/server model, a central server keeps the version history and client machines receive copies of working files. A network connection is required for operations such as checkins and updates, but not for editing or manipulating local file versions. CVS supports branching, merging, sparse checkout, and user-supplied scripts for logging operations or enforcing local policies. Remote access methods described in its manual include SSH, password authentication, GSSAPI, and Kerberos. The manual warns that pserver passwords are trivially encoded and sent in the same encoding, which does not prevent an attacker from obtaining them. CVS is free and self-hosted, with Windows, Unix, and Linux listed among its platforms. It does not include an automated testing program or a built-in process model; concurrent updates may receive only some changes from another multi-file commit.
For and against
For
- Free and self-hosted.
- Supports branching and merging.
- Local files can be edited without a network connection.
- User-supplied scripts can log operations or enforce policies.
Against
- Checkins and updates require a network connection.
- Manual warns pserver passwords are trivially encoded.
- No automated testing program or built-in process model.
The verdict
CVS provides centralized version history and team workflows, with local editing available while disconnected. Its password warning and lack of built-in testing or process modeling are important limitations to weigh.
Who it suits
CVS may suit developers who need centralized version history and can work with a networked, self-hosted version control system. Its documented workflow uses separate directories and merges developers’ work.
Plans and prices
CVS
No hosted plan or usage limits stated
Read 7 Oct 2026 · cvs.nongnu.org
On the record
- Authentication
- The manual describes remote access methods including SSH, password authentication, GSSAPI, and Kerberos.gnu.org · read 7 Oct 2026
- Branching and merging
- The manual documents branching and merging as CVS capabilities.gnu.org · read 7 Oct 2026
- Central repository
- Client/server CVS keeps version history on a central server and gives client machines copies of the files developers are working on.cvs.nongnu.org · read 7 Oct 2026
- Concurrency limitation
- A concurrent update can receive only some of the changes from another multi-file commit.gnu.org · read 7 Oct 2026
- Download
- The GNU FTP archive lists CVS source archives, including version 1.12.13a.ftp.gnu.org · read 7 Oct 2026
- History storage
- CVS stores file versions as differences in a single file to reduce storage use.gnu.org · read 7 Oct 2026
- Network requirement
- The network connection must be available for operations such as checkins and updates, but not for editing or manipulating local file versions.cvs.nongnu.org · read 7 Oct 2026
- Notable limitation
- CVS does not provide an automated testing program or a built-in process model.gnu.org · read 7 Oct 2026
- Policy scripts
- CVS can run user-supplied scripts to log operations or enforce site-specific policies.cvs.nongnu.org · read 7 Oct 2026
- Purpose
- CVS is a version control system for recording the history of source files and documents.gnu.org · read 7 Oct 2026
- Security
- The manual warns that pserver passwords are trivially encoded and transmitted in the same encoding, which does not prevent an attacker from obtaining them.gnu.org · read 7 Oct 2026
- Support
- The manual lists the info-cvs mailing list for general CVS discussion and bug-cvs for bug reports.gnu.org · read 7 Oct 2026
- Team workflow
- Each developer works in a separate directory, and CVS merges work when developers are done.gnu.org · read 7 Oct 2026