CVS might be considered an easy target for software hate, but
that doesn’t stop it annoying the hell out of you. Here’s an instance I
encountered today, trying to use
So, here I am in my CVS working copy.
$ cvs status src/blah.c =================================================================== File: blah.c Status: Up-to-date Working revision: 18.104.22.168 Repository revision: 22.214.171.124 /srv/cvs/project/src/Attic/blah.c,v Sticky Tag: ramulus (branch: 1.1.2) Sticky Date: (none) Sticky Options: (none) $
Good-o — I’m on the branch I expect to be, and the file’s up-to-date with respect to the repository. Now I’d like to see who last touched a particular line in the file.
$ cvs annotate src/blah.c | head -1 Annotations for src/blah.c *************** $
What? No blame? But the file… she exist!
Oh, I see:
$ cvs annotate -r ramulus src/blah.c | head -1 Annotations for src/blah.c *************** 126.96.36.199 (aaron 10-Apr-08): #include <stdio.h> $
So, when a file was created on a branch, you have to specify that
branch name to be able to see its annotations. (And even if it
already existed when you branched, by default you just see the blame
I can’t imagine what in the name of all that is unholy possessed the perpetrator of this excrescence to consider that a reasonable design.