下一个: , 上一个: Tagging by date/tag, 上层: Revisions


4.7 删除、移动和重命名标签

通常不会去修改标签。 它们的存在是为了纪录仓库的历史,如果删除或修改本身就是违反了初衷。

然而,可能有人使用临时标签,或者在别处误打了标签。 因此,你就可以进行删除、移动更名一个标签。

警告:本节的命令具有危险性,他们会永久性的抹去历史纪录信息并且一旦出错无法恢复。 如果你是 cvs 管理员,你应当利用 taginfo 限制这些命令(参阅 taginfo)。

要删除标签,在 cvs tagcvs rtag 后面加上 `-d' 选项。 例如:

     cvs rtag -d rel-0-4 tc

将非分支(non-branch)标签 rel-0-4 从模块 tc 上删除。 如果给定的名称是仓库的一个分支标签(branch tags),该标签不会被删除并返回警告信息。 当你明确地知道自己在干什么,加上 -B 选项就能删除分支标签。 反过来,这时如果遇到非分支标签将不会被删除并返回警告信息。

警告:移动分支标签是非常危险的! 当你需要使用 -B 选项时,想清楚并咨询 cvs 管理员(如果你不是管理员)。 当然有别的办法来完成你想完成做的事。

move 一个标签,是将这个名字赋给另外的版本。 例如,stable 标签现在是指向文件 backend.c 的版本 1.4 上,我们想将它指向版本 1.6 上面。 要移动一个非分支标签,在 cvs tagcvs rtag 命令后面加上 `-F' 选项。 例如,可以这样做刚提到的任务:

     cvs tag -r 1.6 -F stable backend.c

如果在仓库中遇到给定名字的任何分支标签,发出警告并不妨碍分支标签。 如果你明确要移动该分支标签,可以指定 -B 选项。 那样,给定名字遇到的非分支标签将被忽略并返回警告消息。

警告:移动分支标签是非常危险的! 当你需要使用 -B 选项时,想清楚并咨询 cvs 管理员(如果你不是管理员)。 当然有别的办法来完成你想完成做的事。

当我们说 rename 一个标签,是说给一个版本上的已有标签名改名。 例如,有人将标签名写错了并要更正它(希望其他人还没有使用这个错误的标签)。 要改标签名,先用带有 `-r' 选项的 cvs rtag 命令创建一个新标签,然后删除名字。 (告诫: 此方法将与分支标记一起不工作。) 改名后标签位置与老标签相同。 例如:

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