【问题标题】:hg: unknown command 'extdiff''hg:未知命令'extdiff''
【发布时间】:2011-03-30 05:24:19
【问题描述】:

我无法弄清楚为什么我的 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 被认为是一个合并工具.. 并且可以像“kdiff3”一样从 cmd 行运行。但我想做的是使用 kdiff3 作为 gui 工具来比较 diff 文件。

像这样: 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 中)

【问题讨论】:

  • extdiff 扩展根本没有被加载,hg help extensions 可能会确认,所以其余的被忽略了。当您收到并回答关于同一主题的其他个问题时:stackoverflow.com/questions/5482344/… 此处不会留下任何问题。

标签: mercurial


【解决方案1】:

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

您的 .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”是一个自定义包装器名称,因此您可以将其更改为您喜欢的名称,但它不能是已经保留的名称之一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多