我无法弄清楚为什么我的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中)
答案 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'是一个自定义包装器名称,因此您可以将其更改为您喜欢的名称,但它不能是已存储的名称之一。