如何配置 TFS 以使用各种合并工具

Posted

技术标签:

【中文标题】如何配置 TFS 以使用各种合并工具【英文标题】:How do I configure TFS to work with various merge tools 【发布时间】:2010-11-21 18:48:59 【问题描述】:

最初的问题是“如何将 WinMerge 配置为 TFS 的比较和合并工具”。但是,我正在更改它,因为 TehOne 回答了这个更一般形式的问题。

尽管在 *** 上已经有人问过这个问题,但我会想的。我在其他地方找到了答案,但我在这里提问/回答。它现在是一个社区 wiki。

【问题讨论】:

【参考方案1】:

当我在寻找如何做到这一点时,我发现这篇文章非常宝贵: http://blogs.msdn.com/jmanning/articles/535573.aspx

【讨论】:

你的回答让我改变了问题,并把它变成了一个社区维基。 很高兴我能提供帮助,但真正的功劳当然要归功于 James Manning 的那篇博文。它真的帮助了我。我无法忍受 VSS/TFS 的内置工具。因此,能够使用我已经安装的 Beyond Compare 非常棒。感谢您将此 wiki 设为供大家稍后参考。 他用于 SourceGear DiffMerge 的参数不正确。正确的参数可以找到here【参考方案2】:

详细过程在a Rory Primrose blog posting中提供

简短的回答是比较的参数列表是:

/x /e /ub /wl /dl %6 /dr %7 %1 %2

合并的参数列表是:

/x /e /ub /wl /dl %6 /dr %7 %1 %2 %4

有时 Winmerge 不返回 0,TFS 会认为合并已取消。您需要使用以下包装批处理文件进行合并:

@rem winmergeFromTFS.bat
@rem 2007-08-01
@rem File created by Paul Oliver to get Winmerge to play nicely with TFS
@rem
@rem To use, tell TFS to use this command as the merge command
@rem And then set this as your arguments:
@rem  %6 %7 %1 %2 %4
"C:\Program Files\WinMerge\WinMerge.exe" /x /e /ub /wl /dl %1 /dr %2 %3 %4 %5
exit 0

然后将参数列表设置为:

%6 %7 %1 %2 %

退出 0

【讨论】:

【参考方案3】:

对于SourceGear DiffMerge,您需要将默认命令行更改为:

C:\Program Files (x86)\SourceGear\Vault Client\sgdm.exe

我在 SourceGear 支持论坛以及 @TehOne 提到的 James Manning 的博客上找到了 this thread 中的参数,但是那里给出的参数不正确并导致自动合并反向执行,即旧代码覆盖新代码。正确的论点是:

/m /t1=%6 /t2=%7 /t3=%8 /c=%9 %1 %3 %2 /r=%4

【讨论】:

以上是关于如何配置 TFS 以使用各种合并工具的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 tfs 构建代理来构建发布配置文件?

配置 Bamboo 以使用 MS Build Xaml 模板

为 TFS 发布管理 vNext 打包 DSC 配置

Git:如何将 KDiff3 配置为合并工具和差异工具?

如何配置WinMerge作为Git的合并工具

自托管 azure 代理 - 如何配置管道以共享相同的构建文件夹