http://www.ssec.wisc.edu/mug/hot_topics/mdf/cvs_quickref.html
After you've got everything fixed to your satisfaction and you want to save your changes to the main repository, run cvs commit or cvs commit file, where file is whatever you want to commit.
This will throw you into your favorite editor (where favorite is defined as whatever the CVSEDITOR environment variable is set to or, if that's not set, whatever the EDITOR environment variable is set to or, if THAT'S not set, you'll be forced to use vi.)
Add a *descriptive* comment documenting what changes you have made to the file. When you are done, exit from the editor and your changes will be made in the master copy of this file.
If you exit out of the editor without entering anything or without saving the text you entered, you'll be asked if you want to (a)bort, (c)ontinue, (e)dit or (!) reuse the message for all remaining directories in this commit.
Enter a to abort the commit.
To get the most recent version of everything in a directory and all subdirectories, run cvs update, which will produce a report like:
cvs update: Updating . cvs update: Updating cmd U cmd/foo.c M cmd/bar.f cvs update: Updating libmdf U libmdf/unix/bletch.f cvs update: Updating doc ? doc/NOTES-TO-MYSELF
In this report, if the first character is a;
U The file was updated correctly.
P Like U, but the CVS server sends a patch instead of an entire file. This accomplishes the same thing as U using less band- width.
M You've made changes to this file. If you want to save these changes to the repository, you'll need to run 'cvs commit'
? This file isn't in the CVS repository; if you don't want to add it to the repository, CVS will print this message every time you do an update, but will otherwise ignore it.
Not shown above is the dreaded C condition, which means somebody else committed a new version to the repository while you were changing this file, and CVS couldn't reconcile your changes with their changes, so it's put both sets in your copy of the file, between '<<<<<<<', '------', and '>>>>>>>' marks.
If everybody does a good job of using cvs edit, you *should* never see this...
If you'd like to retrieve a specific version of the file for some reason, you can do cvs update -rversion file for a specific revision number.
If you do this, the file will get checked out with a "sticky tag". The only way to get back the main file from the repository is to do cvs update -A file, which gets rid of the sticky tag.