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

时间:2011-11-04 15:58:23

标签: visual-studio-2010 tfs

我在挂起的更改窗口中看到一个文件。我尝试将它与最新版本进行比较,我收到一条消息“文件是相同的”如果文件相同,为什么这个文件出现在挂起的更改窗口中?这个文件有什么变化?我可以配置TFS不列出相同的文件吗?

6 个答案:

答案 0 :(得分:44)

如果文件由于更改而自动检出,并且最终文件的内容更改回原始状态,则这是正常的。此时,您将在比较时看到有关相同内容的消息。

此博客文章描述了一种处理此问题的不太直观的方法;在评论中,有一个更好的建议是通过命令行通过TFS电动工具处理它。

TFS pending changes ignoring identical files...

答案 1 :(得分:17)

最近我刚刚将VS2010更新到VS 2013,这个问题更糟糕。 使用比较时,根本不会弹出相同的文件。我讨厌这个,因为在仔细检查比较文件之前,你无法弄清楚哪些文件真正被改变了。

最后,我找到了解决方法:
添加"撤消未更改的结帐"在外部工具中:

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

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

答案 2 :(得分:10)

使上述解释更清楚:

  1. 使用VS。中的NuGet包管理器安装TFS Power Tools。
  2. 从Windows Start打开Visual Studio命令提示符(也称为VS 2013/2015的开发人员命令提示符)。
  3. 通过命令提示符导航到本地工作区的根位置。
  4. 执行以下命令:tfpt uu。 / recursive / noget
  5. 如果出现提示,请选择放弃冗余更改。
  6. 为我工作。

    此外:

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

答案 3 :(得分:1)

我通过点击更改中的Stage All按钮解决了这个问题,然后使用Unstage All取消暂存。

它解决了我Changes部分中未更改的文件。好又简单。

答案 4 :(得分:0)

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

当工作区位置配置为本地时,它将放置原始文件的本地副本(就像SVN / CVS一样)。

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

使用TFS源代码管理资源管理器来编辑..." TFS工作区,并将"高级..." - 设置位置从服务器更改为本地。

答案 5 :(得分:0)

对我来说,协调工作空间可解决以下无效的未决更改:

  1. 团队资源管理器->构建
  2. 右键单击更改后的最新版本->“协调工作区...”