CVS

The Concurrent Versions System (CVS) is a widely used and mature revision control system, with command-line tools for all major modern operating systems (including Windows), and GUI tools for some of them (notably Windows).

Pros

  • It is everywhere and is very mature.

  • Many Unix system administrators and virtually every open source or free software developer is familiar with it.

  • It’s easy to use for simple projects.

  • It’s easy to access remote repositories.

  • It’s based on RCS, which allows for some hacking of the central repository.

Cons

  • Commits are not atomic, so the repository could be left in an inconsistent state if a commit fails half-way through.

  • Commits are by file only; you must also tag if you need to reference a group of files.

  • Directory structure support is poor.

  • Does not allow easy renaming of files and directories while retaining history.

  • Poor support for binary files, and little support for other objects such as symbolic links.

  • Based on RCS, which allows for some hacking of the central repository.

Tip

CVS tracks revisions by file, which means that each file has its own internal CVS revision number. As each file is changed, that number changes, so a single project can’t be tracked by a single revision number, since each file is different. Use tags for that kind of tracking.

Example

This example is not suitable for enterprise or multiuser access (see the “See Also” section for links to more information). This is just to show how easy the basics are. This example has the EDITOR environment ...

Get bash Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.