如何配置TFS与各种合并工具一起使用?

26

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

我之前以为这个问题已经被问过了,在Stackoverflow上。我在其他地方找到了答案,但我在这里提问/回答。现在它成为了社区Wiki。

3个回答

33

1
你的回答让我改变了问题并将其变成了社区维基。 - Justin Dearing
1
很高兴我能帮上忙,但当然真正的功劳归功于詹姆斯·曼宁他的博客文章。那篇文章真的帮了我很多。我无法忍受VSS/TFS内置工具。所以,能够使用我已经安装的Beyond Compare真是太好了。感谢您将此设置为维基,供每个人以后参考。 - TehOne
他使用的SourceGear DiffMerge参数不正确。 正确的参数可以在这里找到。 - Shaul Behr

12

详细的过程在Rory Primrose的博客文章中提供

简短的回答是compare的参数列表为:

/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


我认为这是一个打字错误,但参数列表应该是%6 %7 %1 %2 %4。 - ilCosmico

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接