CVS, the Concurrent Versions System, began as a set of shell scripts written by Dick Grune in the mid-1980s. By his own account, recorded on his web page documenting the original CVS, the scripts were layered on top of RCS and posted to the comp.sources.unix newsgroup in 1986. The system let several developers work on the same files at once without overwriting each other’s work, building on top of RCS’s per-file revision storage.
Those scripts were later reimplemented in C and grew into the CVS that became the standard open-source version control tool of the 1990s. Rather than locking files one at a time, CVS allowed concurrent edits and then helped merge the results, which is the origin of the “Concurrent” in its name.
The Subversion project’s own book describes the situation CVS created: for years it was “the tool of choice” for open-source projects, the system that many free-software developers learned version control on. The same book notes that its “limitations were obvious from the beginning,” which is what later motivated a replacement.
CVS used a centralized model, with a single repository that clients checked out from and committed to, often over a network connection to a shared server. That model defined how a generation of distributed teams collaborated before distributed version control systems arrived in the 2000s.