mercurial - Mercurial : unknown command 'extdiff' '

标签 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 被认为是一个 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/

相关文章:

unicode - 将 Unicode 字符打印到 PowerShell 提示符

git - 无法将功能书签 merge 到 mercurial 中的主书签中

unicode - Mercurial 提交消息和日志,支持什么编码,Hg 关心吗?

mercurial - 配置 Hudson/Jenkins 以构建所有 mercurial 分支

mercurial - 协调多个依赖的 mercurial 存储库版本的推荐方法?

Eclipse project.properties 反斜杠路径被认为是有害的

svn - 有人在同一台机器上同时使用 Tortoise Git 和 Subversion 吗?

mercurial - 让 Mercurial 完全忘记文件和历史

克隆 Eclipse 工作区的 Mercurial 存储库并在另一个位置重建

mercurial - Mercurial 从 repo 删除目录?