CVS Emerges as Networked Multi-Developer Version Control

CVS, the Concurrent Versions System, began as a set of shell scripts written by Dick Grune. On his own page documenting the original program, Grune explains that he built it to coordinate work with two students on a compiler project in 1984 and 1985, when their conflicting schedules made it hard to work on the same files. The system was first called “cmt” because, as Grune puts it, “it allowed us to commit versions independently.” He later cleaned up the scripts, renamed them CVS, and posted them to the comp.sources.unix newsgroup in 1986.

CVS was layered on top of RCS, the Revision Control System, which managed the history of individual files. Grune’s contribution was the concurrency model and the front-end that let multiple developers work against a shared set of RCS files. Brian Berliner later rewrote the shell scripts in C, producing the version that spread widely.

That C rewrite, maturing through the early 1990s, is what most developers came to know as CVS. Crucially, it added a client-server mode so contributors could check out, update, and commit over a network against a central repository they did not have to log into directly.

This networked, central-server model is what made CVS the backbone of open-source collaboration for roughly a decade. Projects with contributors scattered around the world could share a single authoritative history, a pattern CVS established and that Subversion was later built to refine.

Sources

Last verified June 8, 2026