答案 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 并选择以下选项:
答案 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行是“签入”和“当前工作副本”的参数索引。