Deleting, moving, and renaming tags

Normally one does not modify tags. They exist in order to record the history of the repository and so deleting them or changing their meaning would, generally, not be what you want.

However, there might be cases in which one uses a tag temporarily or accidentally puts one in the wrong place. Therefore, one might delete, move, or rename a tag. Warning: the commands in this section are dangerous; they permanently discard historical information and it can difficult or impossible to recover from errors. If you are a cvsnt administrator, you may consider restricting these commands with taginfo (the section called “User-defined logging”).

To delete a tag, specify the -d option to either cvs tag or cvs rtag. For example:

cvs rtag -d rel-0-4 tc

deletes the tag rel-0-4 from the module tc.

When we say move a tag, we mean to make the same name point to different revisions. For example, the stable tag may currently point to revision 1.4 of backend.c and perhaps we want to make it point to revision 1.6. To move a tag, specify the -F option to either cvs tag or cvs rtag. For example, the task just mentioned might be accomplished as:

cvs tag -r 1.6 -F stable backend.c

By default CVS doesn't allow moving and deleting branch tags, as this should not be done without understanding the issues that this raises. To override this, specify the -B option on the command line.

When we say rename a tag, we mean to make a different name point to the same revisions as the old tag. For example, one may have misspelled the tag name and want to correct it (hopefully before others are relying on the old spelling). To rename a tag, first create a new tag using the -r option to cvs rtag, and then delete the old name. This leaves the new tag on exactly the same files as the old tag. For example:

cvs rtag -r old-name-0-4 rel-0-4 tc
cvs rtag -d old-name-0-4 tc