让我对TFS感到疯狂的一件事是,如果您检出了一个文件,但没有对其进行任何更改,它仍会显示为更改,从而分散您对实际更改的注意力。当您使用T4等工具生成代码时,这尤其令人讨厌,因为大多数情况下该工具将生成相同的代码,但会将文件签出。
由于某些我无法理解的原因,Visual Studio坚持将这些视为变更,如果另一个人碰巧签入相同的“更改”,甚至会声称存在冲突。
遗憾的是,如果您使用的是Visual Studio 2017,则无法使用!
它曾经是very simple用Visual Studio的早期版本来实现这一点:
tfpt uu /noget /r *
如果没有任何更改,我们如何从挂起的更改中删除文件?
这是根据您在TFS中选择的版本控制系统而有所不同,因此上述问题仅适用于TFS的传统版本控制系统TFVC,而不是git已经支持了几年。
对于TFVS,部分解决方法是标记所有文件,右键单击并撤消...并单击以下对话框中的“撤消更改”按钮。这将提示您输入不同的文件(让您选择No或No to All),但不会提示没有更改的文件。重要提示:我写'部分',因为这种方法不适用于文件重命名,因为文件被认为是未更改的,因此重命名将被撤消。
是的,Team Foundation Server 2017没有Power Tools。您可以使用以下解决方法:
右键单击您的项目,选择撤消结帐,然后只需单击“确定”,或者剩下的任何确认...
然后,在撤消签出时,对于每个具有REAL更改的文件,提示将要求您确认该文件的签出...只需单击“全部否”。 Visual Studio将知道签出的文件是否有更改。
警告:此方法还会删除新文件,即尚未签入TFS的文件。如果要保留这些文件,只需将它们从“撤消”文件集中排除即可。
你也可以看看这个问题:他的问题Files listed as pending changes when doing merges that didn't change?
TFSSourceControlExplorerExtension扩展可用于VS 2017,并且它具有撤销不变的动作,效果相当不错。