Diff between SVN & CVS
February 21, 2008 by muralis
A version control system lets several developers work on the same project at once without worrying about overwriting each other’s changes, and keeps track of previous versions of files.
Subversion is a Version Control System, sometimes also called a Source Code Manager (SCM).
Subversion is designed to replace the commonly used CVS system. Subversion functions very similarly to CVS (anyone familiar with CVS will have no problem using Subversion very quickly), but it fixes many of the long-standing problems of CVS, such as lack of atomic commits, poor support of binary files, and difficult branching.
The biggest change between CVS and Subversion is that Subversion versions the entire repository, instead of individual files. So two consecutive versions of a file may not have (in fact probably won’t have) consecutive version numbers, because something somewhere else in the repository changed in the meantime.
Branching and merging
CVS allows you to isolate changes onto a separate line of development, known as a branch. When you change files on a branch, those changes do not appear on the main trunk or other branches.
Later you can move changes from one branch to another branch (or the main trunk) by merging. Merging involves first running cvs update -j, to merge the changes into the working directory. You can then commit that revision, and thus effectively copy the changes onto another branch.
branch
a separate branch of development that is usually merged back into the trunk.
tag
a branch tagged for versioning or historical reasons.