TFS:如何在批处理文件中撤销未修改文件的签出

180
我们使用批处理文件生成代码,并自动从Team Foundation Server(TFS)检出已生成的文件,以便可以重新生成它们。大多数这些文件没有被修改,但生成器事先不知道这一点。
“tfs undo”命令会撤销检出操作,但会提示已被修改的文件(我们不想要此操作)。我们也不想立即检入生成的文件。
是否有一种命令(或一系列命令)可以撤消所有未修改的文件的检出操作而不提示用户?

请注意,手动撤销所有更改并期望在提示有更改的文件时选择“全部不”将无法正确工作,因为它将在不提示的情况下撤消ADD更改(请参见Ray's answer)。 - Elaskanator
12个回答

0
我发现最安全、最快的方法既不会导致 Visual Studio 崩溃,也不需要很长时间,具体如下:
1. 打开开发人员命令提示符。您可以从 Visual Studio 中执行此操作,在顶部的搜索字段中键入“开发人员命令提示符”。
2. 使用以下命令获取所有已签出文件的状态:
tf status "$/" /s:tfs /recursive /format:detailed

3- 然后您将获得以下类似项目的列表: {{link1:enter image description here}}

然后从img中的1处复制您想要批量撤消的目录的路径。在下面的命令中,在双引号之间填写该路径,而不是PUT_1_HERE。对于2和3也做同样的操作,但不需要使用双引号。

tf undo "PUT_1_HERE" /workspace:PUT_2_HERE;PUT_3_HERE /recursive

4- 执行命令,哇,它应该只需要几秒钟,无论要撤销的文件数量有多大。


-21
据我所了解,在 TFS 中,如果您签出一个团队项目,整个项目都会被签出,您无法控制下载哪些文件。如果您想要防止某些文件的签入,则可以锁定它们。
在工作中,我们都讨厌 TFS。

1
我们可以检查单个文件,并锁定它将不允许开发人员将其签入。 - Robert Wagner
5
本来想给它点个踩,但是“在工作中,我们都讨厌TFS。”这句话挽救了它。 - James

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接