在TFS中我们可以自定义合并算法(冲突解决)

时间:2010-02-22 19:25:49

标签: version-control tfs merge code-generation

在我们的例子中,我们希望在生成的代码的代码注释标题中进行igonore更改。在Visual Studio中,我们可以更改合并工具(弹出的GUI)并使用能够自定义的第三方工具来忽略更改(http://msdn.microsoft.com/en-us/library/ms181446.aspx)。太棒了,所以文件比较不再强调代码注释作为差异。

然而,当需要签入时,TFS合并算法仍然提示我们解决冲突。

有没有办法更好地告知合并冲突解决算法哪些更改对我们来说实际上很重要?或者我们可以替换算法或者将其工作分包给第三方吗?

1 个答案:

答案 0 :(得分:3)

没有。但这对您的场景来说实际上是一个很好的答案。当TFS阻止签入时,并不是因为它正在运行任何类型的差异:这是因为您的本地版本#与最新版本#不匹配。换句话说,自从您上次使用自定义合并工具运行Get +已解决的文件冲突以来,其他人已在此期间签入。识别这些情况是一项至关重要的服务器端功能,不能也不应该禁用,因为任何合并工具(包括内置于TFS客户端API中的工具)都无法可靠地检测到它。

回到为什么这是一件好事:一旦冲突对话框再次出现,您就可以正常解决自定义工具中的其他冲突。在任何时候都没有调用内置的文本合并引擎。*这个过程仍然完全在你的控制之下。你仍然需要选择一个“胜利者”[或从可用输入中生成一个新的],即使根据你的工具文件在语义上是相同的。但这与任何其他Resolve场景没有什么不同,例如你已经明确处理过的场景。

*好的,我骗了。它用于生成对话框中显示的“X已添加,Y已删除...”摘要。重点是,参与识别版本冲突,也不会修改任何文件,除非你要求它(“为我合并更改”)。