What loginfo does for log messages, taginfo does for tags. The left side of taginfo is regular expressions, as usual, and the right side is programs. Each program is automatically handed arguments when CVS tag is invoked, in this order:
arg 1: tag name arg 2: operation ("add" => tag, "mov" => tag -F, "del" => tag -d) arg 3: repository arg 4, 5, etc: file revision [file revision ...]
If the program returns nonzero, the tag is aborted.
We haven't covered the -F option to tag before now, but it's exactly
what the above implies: a way to move a tag from one revision to
another. For example, if the tag
Known_Working is attached to
Revision 1.7 of a file and you want it attached to Revision 1.11
instead, you'd do this
cvs tag -r 1.11 -F Known_Working foo.c
which removes the tag from 1.7, or wherever it was previously in that file, and puts it at 1.11.