26

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

我本来应该已经在 Stackoverflow 上问过这个问题。我在其他地方找到了答案,但我在这里提问/回答。它现在是一个社区维基。

4

3 回答 3

33

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

于 2009-08-21T20:00:58.550 回答
12

Rory Primrose 博客文章中提供了漫长的过程

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

/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

于 2009-08-21T19:57:11.490 回答
0

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

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

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

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

于 2013-07-10T15:04:59.767 回答