LinuxCommandLibrary

cvs

TLDR

Checkout a module from the repository

$ cvs checkout [module_name]
copy
Update working copy with latest changes
$ cvs update
copy
Commit changes with a message
$ cvs commit -m "[commit message]"
copy
Add a new file to version control
$ cvs add [filename]
copy
Show differences from repository version
$ cvs diff [filename]
copy
View commit history for a file
$ cvs log [filename]
copy
Create a branch
$ cvs tag -b [branch_name]
copy

SYNOPSIS

cvs [global-options] command [command-options] [arguments]

DESCRIPTION

CVS (Concurrent Versions System) is a version control system that tracks changes to files over time. It enables multiple developers to work on the same codebase, managing merges and maintaining history of all changes.
CVS uses a client-server architecture where a central repository stores all versions. Developers checkout working copies, make changes locally, and commit them back. The system handles concurrent modifications through optimistic locking and merge resolution.
Operations include checking out code, updating to get others' changes, committing modifications, branching for parallel development, and tagging releases. CVS tracks changes at the file level, storing deltas efficiently.

PARAMETERS

checkout (co)

Get a working copy from the repository.
update (up)
Update working copy with repository changes.
commit (ci)
Commit changes to the repository.
add
Add files to version control.
remove (rm)
Remove files from version control.
diff
Show differences between versions.
log
Show revision history.
status
Show working copy status.
tag
Add a symbolic tag to revisions.
-d CVSROOT
Specify the repository root.
-m MESSAGE
Commit message.

CAVEATS

CVS is considered legacy; Git and other distributed VCS are preferred for new projects. It cannot track directory operations well. Atomic commits are not guaranteed across multiple files. Branch and merge operations are more cumbersome than modern systems.

HISTORY

CVS was developed by Dick Grune in 1986 and later enhanced by Brian Berliner. It was the dominant version control system throughout the 1990s, used by major open-source projects. It was largely superseded by Subversion and later Git in the 2000s.

SEE ALSO

svn(1), git(1), rcs(1)

Copied to clipboard