我不明白为什么我的 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 被认为是一个 merge 工具..并且可以像“kdiff3”一样从 cmd 行运行。但我想做的是使用 kdiff3 作为比较差异文件的 gui 工具。
像这样: Mercurial 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 中)
最佳答案
请注意,merge-tool 和 external diff 是用于不同任务的不同工具。 例如,您可以使用 fmdiff将 FileMerge 用于 diff 并将 k3diff 用于 merge 工具的脚本:
您的 .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' 是自定义包装器名称,因此您可以将其更改为您喜欢的名称,但它不能是已经保留的名称之一。
关于mercurial - Mercurial : unknown command 'extdiff' ',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5482210/