Macos 如何使用p4merge作为Mercurial的合并/差异工具?
有人知道如何设置以用作OS X 10.5上的合并/差异工具吗?我猜有一个用于p4merge的CLI工具(我对此一无所知) 我写了一篇关于在Mercurial中使用Changes.app和其他一些GUI工具的博文:Macos 如何使用p4merge作为Mercurial的合并/差异工具?,macos,configuration,mercurial,perforce,p4merge,Macos,Configuration,Mercurial,Perforce,P4merge,有人知道如何设置以用作OS X 10.5上的合并/差异工具吗?我猜有一个用于p4merge的CLI工具(我对此一无所知) 我写了一篇关于在Mercurial中使用Changes.app和其他一些GUI工具的博文: 基本上,您需要知道加载diff工具的CLI工具的调用期望。即,如何使其从特定文件加载数据,以及如何使其等待退出。文章中应该有足够的信息给你一些想法。我使用下面的Python启动p4merge并与git一起使用: #!/usr/bin/python import sys import o
基本上,您需要知道加载diff工具的CLI工具的调用期望。即,如何使其从特定文件加载数据,以及如何使其等待退出。文章中应该有足够的信息给你一些想法。我使用下面的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调整为“签入”和“当前工作副本”的参数索引。这将用于合并: 将其放入您的
~/.hgrc
(或者,您的Mercurial.ini
在Windows上也可以选择):
需要Mercurial 1.0或更新版本。显然,您需要更新该可执行文件的路径,以反映安装p4merge的位置
您无法更改
hg diff
使用的内容;但您可以使用扩展名extdiff
创建使用所需显示的新diff命令
因此,hg pdiff
可以运行p4 merge,等等。我发现这是一个很好的解决方案,除了一个小问题,它使p4merge(在mac os下)混淆了命令输入执行中描述的所有操作,并在[合并工具]部分添加以下行:
p4.args=$base $local $other $output
这一行告诉mercurial p4merge取其参数的顺序。可能是因为我在Windows上工作,但建议的解决方案对我不起作用。相反,以下方法确实有效 在您的
~/.hgrc/
/Mercurial.ini
中,我应用了以下更改:
已启用“ExtDiff”扩展:
[extensions]
hgext.extdiff =
添加了P4 extdiff命令:
[extdiff]
cmd.p4diff = p4merge
将其配置为默认的visual diff工具:
[tortoisehg]
vdiff = p4diff
我使用的是1.0.1版本的OrtoiseHG和p4merge,它是开箱即用的 只需进入全局设置->乌龟,然后选择以下选项:
- 三向合并工具:p4merge
- 视觉差异工具:p4merge
您应该使用可执行文件“launchp4merge”而不是“p4merge”。这样,如果您同时区分多对文件,它们都会出现在一个合并进程中,而不是在单独的进程中。如果您希望使用Adam的建议,这对我来说很有效,使用此行代替上面的p4.executable行:p4.executable=/Applications/p4merge.app/Contents/Resources/launchp4merge这不适用于
hg diff
。关于如何使p4merge成为默认的diff编辑器有什么建议吗?您不能更改diff
使用的内容,但可以使用extdiff
扩展创建使用所需显示的新diff命令。因此,hg pdiff
可以运行p4 merge,等等。如果您这样做,您只需要键入“hg p4”来进行视觉区分,因为Mercurial只需要键入最小数量的字符来消除命令的歧义。
[tortoisehg]
vdiff = p4diff