我正在将我的开发分支合并到主分支中。我在开发分支中只更改了一部分文件,所有其他文件应保持不变。从逻辑上讲,我只想合并我已经更改过的文件。我不会检查我没有更改的文件。
但是当我在TFS中执行合并操作时,它会使用更改类型“merge”标记树中的每个文件。看起来我必须检查整个源代码树中的每个文件!我真的不想这样做,因为这样就无法查看变更集,看看我在项目中实际更改了哪些文件。
起初,我以为我可以使用tfpt.exe Undo Unchanged命令撤消所有“合并”更改,但这不会撤消这些更改。
有人对此有任何想法吗?感谢。
答案 0 :(得分:10)
这也发生在无基础合并上。当TFS在您正在合并的分支之间没有现有的合并关系时,就会发生无基础合并。因此,它会考虑每个文件' new'在两个分支机构中,所以它合并了#39;每个文件。
要创建合并关系,以便将来合并只列出您实际更改过的文件,您需要对所有更改进行无基本合并,直到指定版本,以便TFS知道共同基线应该是什么是。你应该在之后合并这些更改 - 现在纠正这个分支的基线为时已晚。
如果您实际上并不想从其他分支机构进行任何更改,但只是告诉TFS这些版本在逻辑上属于同一版本,您可以进行合并'给予信用'对于变更集:tf merge /discard
。
答案 1 :(得分:7)
有许多可能的原因。这不是一个完整的清单:
注意:所有这些同样适用于2005& 2008。
答案 2 :(得分:1)
在Visual Studio 2008和TFS 2008中,不会发生这种情况。只有已更改的文件才会标记为合并。如果您对分支和主干之间的文件进行比较是否有任何更改?诸如编码之类的更改仍会使TFS合并此文件。