hg:未知命令'extdiff''

时间:2011-03-30 05:24:20

标签: mercurial

我无法弄清楚为什么我的extdiff扩展程序不能用于Mercurial(在Mac上)。

这是我的.hgrc文件的样子:

[extensions]
fetch=
hgext.extdiff =

[extdiff]
cmd.kdiff3 =

[ui]
merge=kdiff3

[merge-tools]
kdiff3.executable=/Applications/kdiff3.app/Contents/MacOS/kdiff3
kdiff3.args = $base $local $other -o $output

然而kdiff3被识别为合并工具..并且可以从cmd行运行,如“kdiff3”。但我想做的是使用kdiff3作为比较差异文件的gui工具。

像这样:     hg extdiff -p kdiff3

这似乎是使用Mercurial时使用kdiff3作为弹出式gui的最佳方式。

我是新手,我不确定我是否做得对。

谢谢...!

顺便说一句,当我尝试运行'hg extdiff'时

我明白了:

 hg: unknown command 'extdiff'
'extdiff' is provided by the following extension:
extdiff  command to allow external programs to compare revisions
use "hg help extensions" for information on enabling extensions

(即使它是在.hgrc中)

1 个答案:

答案 0 :(得分:4)

请注意,merge-tool和external diff是用于不同任务的不同工具。 例如,你可以使用fmdiff脚本来使用FileMerge for diff和k3diff for merge-tool:

你的.hgrc应该是:

[extensions]
# enable external diff program
extdiff =

[extdiff]
cmd.opendiff = fmdiff
opts.opendiff =

[merge-tools]
# Override stock tool location
kdiff3.executable = /Applications/kdiff3.app/Contents/MacOS/kdiff3
# Specify command line
kdiff3.args = $base $local $other -o $output
# Give higher priority
kdiff3.priority = 1

现在你可以使用

hg opendiff myfile.ext

请注意'opendiff'是一个自定义包装器名称,因此您可以将其更改为您喜欢的名称,但它不能是已存储的名称之一。