2008-09-04 149 views

回答

-1

我猜是有一个CLI工具p4merge(我一无所知)。

我写了一篇博客文章使用Changes.app,和一些其他的GUI工具与水银:Using Mercurial with GUI Tools.

基本上,你需要知道的是加载了比较工具的CLI工具的调用期望。 IE,如何使它从一个特定的文件加载数据,以及如何让它等待退出。在帖子上应该有足够的信息给你一些想法。

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])) 

我不知道长相如何善变到虽然启动外部比较工具?希望这很简单,就像在上面的行中调整2 & 5一样,作为“签入”和“当前工作副本”参数的索引。

39

将这个到您的~/.hgrc(或可选,您Mercurial.ini在Windows上):

[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的位置。

+3

您应该使用可执行文件“launchp4merge”而不是“p4merge”。这样,如果您同时对多个文件对进行比较,它们都会出现在一个p4merge进程中,而不是单独的进程中。 – 2009-02-14 06:05:38

+1

如果您希望使用Adam的建议(适用于我),请使用此行代替上面的p4.executable行: p4.executable = /Applications/p4merge.app/Contents/Resources/launchp4merge – warrenm 2010-03-17 23:00:24

+0

这不适用于`hg diff`。任何关于如何使p4merge成为默认diff编辑器的建议? – Tobber 2015-02-18 14:59:30

15

我发现Ry4an's answer是一个很好的解决方案,除了一个小问题,它使p4merge(在mac os下)混合了命令输入。 不要在his answer涉及的所有内容,并添加在[合并工具]以下行部分

p4.args=$base $local $other $output 

这行告诉善变的次序p4merge接受它的参数。

3

也许是因为我在Windows上工作,但建议的解决方案并不适合我。相反,下面的工作。

在你~/.hgrc//Mercurial.ini,我申请了以下变化:

启用 “ExtDiff” 扩展名:

[extensions] 
hgext.extdiff = 

新增P4 extdiff命令:

[extdiff] 
cmd.p4diff = p4merge 

配置为默认视觉比较工具:

[tortoisehg] 
vdiff = p4diff 
13

我使用的是TortoiseHg 1.0.1版本,p4merge开箱即用。

刚去全局设置 - > TortoiseHg并选择以下选项:

  • 三方合并工具:p4merge
  • 可视化差异工具:p4merge

Screenshot

相关问题