CVS is a version control system, that is, a system you can use to record the history of your files and it’s changes.
This system is usually applied to software development in order to maintain history of the evolution of the source code.
CVS allows you to easily retrieve old versions of each file that is under it’s control.
In order to save space on the disk and for the sake of efficiency, instead of saving every version of every file you have ever created, CVS stores all the versions of a file in a single file, with some extra data in it so that it only stores the differences between versions.
CVS also helps when a group of people is working on the same project. Usually every developer works in his own directory, and CVS merges the work when each developer is done.
As good and widely used as it is, CVS has it’s limitations and it is a rather old system which already shows it’s age.
There are currently a number of systems being developed in order to replace it and a few other systems are already there for some time now. Some (but only a few) interesting alternatives to CVS are ARCH, Subversion and darcs.