We bought the (excellent) book "Open Source Development with CVS" (see http://cvsbook.red-bean.com)
Based on that book, here is a list of cvs tricks that my co-workers may find useful (they already know cvs, so I am going to be terse).
Note: I'm supposing that the cvs project you're working on is called "source".
This is the .cvsrc in my home directory
Doing a log for a file is confusing if you have a lot of branches. Mostof the time you want to see only the log of a certain branch. This can be done for branch "a-branch":
Notice there is no space between "-r" and "a-branch".
To see logs only for the main trunk do:
Actually undo a commit must be done by checking in the reverted file. Suppose you want to undo the changes made between 1.3 and 1.5.
This will retrieve the patch between 1.5 and 1.3, and apply it to "foo.c". Check the changes made to "foo.c" and commit.
You have two branches B1 and B2, on both the branches there is active development, but the changes made on B1 must be merged to B2 on a regular basis.
We're going to do merge N (the last merge was M=N-1).
The first time, it may be that you do not have tag-merge-to-B2-0 available (or something equivalent). Just leave out the first -j option and cvs will automatically do the right thing, using the point where B1 and B2 branched of.
Note: it is in general a good idea to also create a tag when creating a branch.