I joined this place so I could reply the an article by jtauber which talked about CVS.
But, I find I'm not worthy of replying (yet).
So my reply will live in obscurity here:
From the article:
> up CVS major revision (so 2.0 = first release, 3.0 = > second release, etc) > cvs commit -m "NEW RELEASE" -r y.0 > cvs update -A
Using "cvs commit -r" to change the revision numbers is generally regarded by those on the email@example.com mailing list as a very bad idea. You should just learn to ignore the revision numbers that CVS assigns to individual files.
Using "cvs commit -r 2.0" (for example) can break certain obscure usages of CVS...well, those usages are tather so obscure they're probably not worth mentioning, but in any case using "cvs commit -r" is regarded as a bad idea by those who develop CVS.
Using "cvs update -A" will blow away any sticky tags, including those marking files as "binary", in case you have any of those, and should be used with caution.
I have a patch which (among other things) would allow you to say "cvs update -r .trunk" and have the desired effect, but without blowing away sticky tags that were not meant to be blown away. (e.g. binary-ness). my patch is here.