如何将p4merge用作Mercurial的合并/差异工具?
时间:2020-03-05 18:47:24 来源:igfitidea点击:
有谁知道如何设置Mercurial以将p4merge用作OS X 10.5上的合并/差异工具?
解决方案
回答
我猜有一个p4merge的CLI工具(我一无所知)。
我写了一篇博客文章,介绍如何将Changes.app和其他一些GUI工具与Mercurial一起使用:将Mercurial与GUI工具一起使用。
基本上,我们需要了解加载diff工具的CLI工具的调用期望。 IE,如何使其从特定文件加载数据,以及如何使其等待退出。帖子上应该有足够的信息,可以给我们一些想法。
回答
我使用以下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]))
我不确定启动外部差异工具的效果如何?希望这就像将上一行中的2和5调整为"已签入"和"当前工作副本"的参数索引一样简单。
回答
将其放入〜/ .hgrc(或者Windows上的Merurial.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。
回答
我发现Ry4an的答案是一个很好的解决方案,除了一个小问题,它使p4merge(在Mac OS上)混淆了命令输入。按照他的答案中所述执行所有操作,并在[merge-tools]部分中添加以下行:
p4.args=$base $local $other $output
这行告诉Mercurial p4merge接受参数的顺序。
回答
也许是因为我在Windows上工作,但是建议的解决方案对我却不起作用。而是,下面的工作。
在〜/ .hgrc /
/Mercurial.ini
中,我进行了以下更改:
启用的" ExtDiff"扩展名:
[extensions] hgext.extdiff =
添加了P4 extdiff命令:
[extdiff] cmd.p4diff = p4merge
将其配置为默认的视觉差异工具:
[tortoisehg] vdiff = p4diff
回答
我使用的是TortoiseHg的1.0.1版本,p4merge可以直接使用。
只需转到全局设置-> TortoiseHg并选择以下选项:
- 三向合并工具:p4merge
- 视觉差异工具:p4merge