如何使用p4merge作为Mercurial的merge / diff工具?
有谁知道如何设置Mercurial使用p4merge作为OS X 10.5的合并/比较工具?
把它放到你的~/.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或更新版本。 很明显,您需要更新该可执行文件的path,以反映安装p4merge的位置。
我发现Ry4an的答案是一个很好的解决scheme,除了一个小问题,它使p4merge(在mac os下)混合了命令input。 在他的答案中描述所有内容,并在[merge-tools]部分添加以下行 :
p4.args=$base $local $other $output
这一行告诉mercurial p4merge以什么顺序接受它的参数。
我正在使用TortoiseHg的1.0.1版本,并且p4merge开箱即用。
只需进入全局设置 – > TortoiseHg并select以下选项:
- 三路合并工具:p4merge
- Visual Diff工具:p4merge
也许是因为我在Windows上工作,但提出的解决scheme并不适合我。 相反,下面的工作。
在~/.hgrc/
Mercurial.ini
,我应用了以下更改:
启用“ExtDiff”扩展名:
[extensions] hgext.extdiff =
增加了P4 extdiff命令:
[extdiff] cmd.p4diff = p4merge
将其configuration为默认的可视化差异工具:
[tortoisehg] vdiff = p4diff
我使用下面的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是如何启动一个外部diff工具? 希望这是简单的调整上面的行2和5成为“签入”和“当前工作副本”的参数的索引。
我猜是有一个CLI工具p4merge(我什么都不知道)。
我写了一篇关于使用Changes.app的博客文章,以及Mercurial的一些其他GUI工具: 使用Mercurial和GUI工具。
基本上,你需要知道加载diff工具的CLI工具的调用期望值。 IE,如何使它从一个特定的文件加载数据,以及如何让它等待退出。 这个post应该有足够的信息给你一些想法。