Visual Studio TFS在未决更改列表中显示未更改的文件

我在待处理的更改窗口中看到一个文件。 我试图将其与最新版本进行比较,我得到一个消息“文件是相同的”如果文件是相同的,为什么这个文件显示在挂起的更改窗口? 这个文件有什么改变? 我可以configurationTFS不列出相同的文件吗?

如果由于更改而自动检出文件,并且最终将文件的内容更改回初始状态,则这是正常的。 在这一点上,你会看到相同的内容相比较的消息。

这个博客条目描述了一个不太直观的处理方式。 在评论中还有更好的build议,通过命令行通过TFS电动工具处理。

TFS挂起更改忽略相同的文件…

最近我刚刚更新VS2010到VS 2013,这个问题更糟。 在使用比较时,完全不会popup相同的文件。 我讨厌这个,因为你无法弄清楚哪些文件是真正改变的,直到你仔细检查比较文件。

最后我想出了一个解决方法:
在外部工具中添加“撤消未更改的签出”

  • 命令: tfpt.exe
  • 参数: uu . /noget /recursive uu . /noget /recursive
  • 初始目录: $(SolutionDir)

运行此命令后,TFS将自动撤销文件中的所有冗余更改。
但是这些文件仍然保持退出状态,实际上它们已经撤销,并且与最新版本相同。 我认为这是TFS中的一个错误。 您只需点击解决scheme资源pipe理器下方工具栏中的刷新图标,即可刷新这些文件并显示正确的状态!

为了使上面的解释更清楚:

  1. 使用VS中的NuGet包pipe理器安装TFS电动工具。
  2. 从Windows Start打开Visual Studio命令提示符(也称为VS 2013/2015的开发人员命令提示符)。
  3. 通过命令提示符导航到本地工作空间的根位置。
  4. 执行这个命令:tfpt uu。 /recursion/ noget
  5. 如果出现提示,请select丢弃多余的更改。

为我工作。

进一步:

有时我发现我需要在开发人员命令提示符的打开提示符下运行命令(并且得到一个工作区未发现错误),然后导航到工作区文件夹并在那里执行。 如果我直接find正确的文件夹,则找不到该命令。 (我不介意解决这个问题本身。)

Visual Studio 2012引入了一个名为Local Workspace的新概念。

当Workspace Location被configuration为Local时,它将放置原始文件的本地副本(就像SVN / CVS一样)。

然后它会自动隐藏未处理的更改文件。

使用TFS源代码pipe理资源pipe理器“编辑…”TFS工作区,并更改“高级…” – 设置位置从服务器到本地。

我通过单击“更改”中的“ Stage Allbutton来解决此问题,然后使用Unstage All将其Unstage All

它解决了我在“ Changes部分中保留的未更改的文件。 好而简单。