1

我想为hg convert命令添加额外的选项,这是由内部扩展提供的hgext.convert

我尝试在我的__init__.py

def extsetup(ui):
    entry = extensions.wrapcommand(commands.table, 'convert', convert_cmd)
    entry[1].append(('', 'test', None, _("test option")))

def convert_cmd(...): ...

但是在启用我的扩展并正常运行后hg convert --test,我收到以下错误:

hg: unknown command 'convert'
(did you mean one of clone, recover, revert?)

如果我打印 的键commands.table,我可以看到里面没有自定义命令。

如何获取和扩展自定义命令?

4

1 回答 1

1

根据“编写 Mercurial 扩展”

在 extsetup 之后,cmdtable 被复制到 Mercurial 中的全局命令表中。

所以我需要修改扩展cmdtable本身的命令。这有点hacky,但现在可以使用:

from hgext import convert

def extsetup(ui):
    entry = extensions.wrapcommand(convert.cmdtable, 'convert', convert_cmd)
    entry[1].append(('', 'test', None, _("test option")))
于 2016-02-20T11:22:44.917 回答