Visual Studio TFS在未决更改列表中显示未更改的文件
我在待处理的更改窗口中看到一个文件。 我试图将其与最新版本进行比较,我得到一个消息“文件是相同的”如果文件是相同的,为什么这个文件显示在挂起的更改窗口? 这个文件有什么改变? 我可以configurationTFS不列出相同的文件吗?
如果由于更改而自动检出文件,并且最终将文件的内容更改回初始状态,则这是正常的。 在这一点上,你会看到相同的内容相比较的消息。
这个博客条目描述了一个不太直观的处理方式。 在评论中还有更好的build议,通过命令行通过TFS电动工具处理。
TFS挂起更改忽略相同的文件…
最近我刚刚更新VS2010到VS 2013,这个问题更糟。 在使用比较时,完全不会popup相同的文件。 我讨厌这个,因为你无法弄清楚哪些文件是真正改变的,直到你仔细检查比较文件。
最后我想出了一个解决方法:
在外部工具中添加“撤消未更改的签出”
- 命令:
tfpt.exe
- 参数:
uu . /noget /recursive
uu . /noget /recursive
- 初始目录:
$(SolutionDir)
运行此命令后,TFS将自动撤销文件中的所有冗余更改。
但是这些文件仍然保持退出状态,实际上它们已经撤销,并且与最新版本相同。 我认为这是TFS中的一个错误。 您只需点击解决scheme资源pipe理器下方工具栏中的刷新图标,即可刷新这些文件并显示正确的状态!
为了使上面的解释更清楚:
- 使用VS中的NuGet包pipe理器安装TFS电动工具。
- 从Windows Start打开Visual Studio命令提示符(也称为VS 2013/2015的开发人员命令提示符)。
- 通过命令提示符导航到本地工作空间的根位置。
- 执行这个命令:tfpt uu。 /recursion/ noget
- 如果出现提示,请select丢弃多余的更改。
为我工作。
进一步:
有时我发现我需要在开发人员命令提示符的打开提示符下运行命令(并且得到一个工作区未发现错误),然后导航到工作区文件夹并在那里执行。 如果我直接find正确的文件夹,则找不到该命令。 (我不介意解决这个问题本身。)
Visual Studio 2012引入了一个名为Local Workspace的新概念。
当Workspace Location被configuration为Local时,它将放置原始文件的本地副本(就像SVN / CVS一样)。
然后它会自动隐藏未处理的更改文件。
使用TFS源代码pipe理资源pipe理器“编辑…”TFS工作区,并更改“高级…” – 设置位置从服务器到本地。
我通过单击“更改”中的“ Stage All
button来解决此问题,然后使用Unstage All
将其Unstage All
。
它解决了我在“ Changes
部分中保留的未更改的文件。 好而简单。