As each file is committed, it is assigned a revision number. All files in the repository will have a different revision number depending upon how many times it has been committed. The revision number is per file.
At major milestones, you might want to flag all files at the revision point that they are currently at. CVS uses tags to accomplish this.
Only restriction on tag names is that they cannot contain spaces or the period "." character.
If no filenames are supplied, all files in module are tagged with the tagname.
Example:
$ cvs tag Release-1-0 cvs tag: Tagging . T Makefile T README T hello.py $
Tag names can then be used in place of revision numbers in checkout, update and export commands.