Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何使用p4merge作为Mercurial的合并/差异工具?_Macos_Configuration_Mercurial_Perforce_P4merge - Fatal编程技术网

Macos 如何使用p4merge作为Mercurial的合并/差异工具?

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

有人知道如何设置以用作OS X 10.5上的合并/差异工具吗?

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

我写了一篇关于在Mercurial中使用Changes.app和其他一些GUI工具的博文:


基本上,您需要知道加载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