这是按设计工作的。在 TFS 中使用标签要非常小心,它们与您在其他类型的源代码控制中可能使用的标签有点不同。在 TFS 中,标签是非常可变的,并且可以很容易地在单个文件上移动。它们很强大,但也很危险。
如前所述,您可以通过标签获取单个文件,您会没事的。但是,当您对文件夹执行特定的按标签获取时,您要求 TFS 将该文件夹中的所有内容恢复到标签上指示的相同版本。如果该文件夹中的文件未标记,则它不会匹配任何版本标签,并且将被删除。
请记住,TFS 中的单个文件/版本可以有多个标签,因此解决此问题的一种方法是用新标签标记该目录中的所有文件,然后将此新标签移动到与另一个标签相同的修订版.
考虑$/Project/Folder
...中的三个文件,其中两个标有LABEL_A
,一个根本没有标记。你会做这样的事情。
tf label /server:http://tfs:8080 LABEL_B $/Project/Folder /recursive
这将使用 LABEL_B 标记所有文件。现在您需要移动LABEL_B
到LABEL_A
文件的正确版本:
tf label /server:http://tfs:8080 LABEL_B $/Project/Folder /recursive /version:LLABEL_A
请注意,在 ... 之后有两个,这告诉 TFS 将该标签从文件的一个版本移动到另一个版本。L's
/version:
完成后,根据 获取具体信息LABEL_B
,您应该一切顺利。