如何撤消未更改的文件的挂起更改?

让我对TFS感到疯狂的一件事是,如果您检出了一个文件,但没有对其进行任何更改,它仍会显示为更改,从而分散您对实际更改的注意力。 当您使用T4等工具生成代码时,这尤其令人讨厌,因为大多数情况下该工具将生成相同的代码,但会将文件签出。

由于某些我无法理解的原因,Visual Studio坚持将这些视为变更,如果另一个人碰巧签入相同的“更改”,甚至会声称存在冲突。

幸运的是,TFS Power Tools包含一个命令,用于将签出的文件与服务器版本进行比较,并撤消未更改的文件。 我将解释如何使用自定义工具将其集成到Visual Studio中。

遗憾的是,如果您使用的是Visual Studio 2017,则无法使用此function!

以前使用早期版本的Visual Studio完成此操作非常简单 :

tfpt uu /noget /r * 

如果没有任何更改,我们如何从挂起的更改中删除文件?

根据您在TFS中选择的版本控制系统,这是不同的,因此上述问题仅适用于TFS的传统版本控制系统TFVC,而不是现在已经支持几年的git。

对于TFVS,部分解决方法是标记所有文件,右键单击并撤消…并单击以下对话框中的“ 撤消更改”按钮。 这将提示您输入不同的文件(让您选择NoNo to All ),但不会提示没有更改的文件。 重要提示 :我写’部分’因为这种方法不适用于文件重命名,因为文件被认为是未更改的,因此重命名将被撤消。

是的,Team Foundation Server 2017没有Power Tools。您可以使用以下解决方法:

右键单击您的项目,选择撤消结帐,然后只需单击“确定”,或者剩下的任何确认…

然后,在撤消签出时,对于每个具有REAL更改的文件, 提示将要求您确认该文件的签出…只需单击“全部否”。 Visual Studio将知道签出的文件是否有更改或没有。

警告:此方法还会删除新文件,即尚未签入TFS的文件。 如果要保留这些文件,只需将它们从“撤消”文件集中排除即可。

您还可以看一下这个问题:他的问题文件在进行合并时没有更改时列为待定更改?

TFSSourceControlExplorerExtension扩展可用于VS 2017,并且它具有撤销未更改的操作,该操作非常有效。