打标签与添加、删除文件

准确地讲清楚打标签与添加、删除文件之间的相互关系不那么容易;其他部分的cvs对于跟踪文件存在与否都处理的不错。默认作法是,打标签只对有版本的文件进行。文件如果不存在或者被删除了将被忽略,cvs对没有标签的文件认为它在打标签时不存在。

但这种作法会丢失一些信息。例如,假设有一个文件被添加,然后又给删除了。那么对于没有标签的文件,cvs没法知道打标签是在添加前还是在删除后执行的。如果是用cvs rtag-r选项,cvs对已删除的文件也能打标签,这样就避免了上述问题。例如,你可以用-r HEAD来给版本树的头打标签。

为了处理添加、删除的文件,有cvs rtag命令一个-a选项来避免给删除的文件打标签。例如,你可以与移动标签-F选项同时使用。要是没有-a选项而移动标签,标签仍然会指向被删除文件的旧版本,而不能正确反映文件已经被删除。对采用-r选项的操作,上面解释过,不需-a选项。