如何使用p4merge作为Mercurial的merge / diff工具?

时间:2008-09-04 01:14:34

标签: macos configuration mercurial perforce p4merge

有没有人知道如何设置Mercurial以在OS X 10.5上使用p4merge作为合并/差异工具?

6 个答案:

答案 0 :(得分:40)

这适用于合并:

将其放入~/.hgrc(或者,可选地,在Windows上的Mercurial.ini):

[merge-tools]
p4.priority = 100
p4.premerge = True  # change this to False if you're don't trust hg's internal merge
p4.executable = /Applications/p4merge.app/Contents/MacOS/p4merge
p4.gui = True
p4.args = $base $local $other $output

需要Mercurial 1.0或更新版本。显然,您需要更新该可执行文件的路径,以反映您安装p4merge的位置。


您无法更改hg diff使用的内容;但是可以使用extdiff扩展名来创建使用所需显示的新diff命令。

所以hg pdiff可以运行p4 merge等等。

答案 1 :(得分:15)

我发现Ry4an's answer是一个很好的解决方案,除了一个小问题,它让p4merge(在mac os下)混合了命令输入。 执行his answer中描述的所有内容,并在[merge-tools]部分添加以下内容

p4.args=$base $local $other $output

这一行告诉mercurial p4merge以哪个顺序获取其参数。

答案 2 :(得分:14)

我正在使用TortoiseHg的1.0.1版本,而p4merge开箱即用。

只需转到全局设置 - > TortoiseHg 并选择以下选项:

  • 三向合并工具:p4merge
  • Visual Diff Tool:p4merge

Screenshot

答案 3 :(得分:3)

也许是因为我在Windows上工作,但建议的解决方案对我不起作用。相反,以下工作确实有效。

~/.hgrc/ / Mercurial.ini中,我应用了以下更改:

启用“ExtDiff”扩展程序:

[extensions]
hgext.extdiff =

添加了P4 extdiff命令:

[extdiff]
cmd.p4diff = p4merge

将其配置为默认的可视化差异工具:

[tortoisehg]
vdiff = p4diff

答案 4 :(得分:0)

我猜测有一个用于p4merge的CLI工具(我对此一无所知)。

我写了一篇关于使用Changes.app和Mercurial的其他GUI工具的博文:Using Mercurial with GUI Tools.

基本上,您需要了解加载diff工具的CLI工具的调用期望。 IE,如何使其从特定文件加载数据,以及如何使其等待退出。这篇文章应该有足够的信息给你一些想法。

答案 5 :(得分:0)

我使用以下Python来启动p4merge并将其与git一起使用:

#!/usr/bin/python
import sys
import os

os.system('/Applications/p4merge.app/Contents/MacOS/p4merge "%s" "%s"' % (sys.argv[2], sys.argv[5]))

我不确定mercurial看起来如何启动外部差异工具?希望它像调整2&上述第5行是“签入”和“当前工作副本”的参数索引。