如何在 Hg 中扩展另一个扩展的命令?
How to extend another extension's command in Hg?
我想为 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
的键,我可以看到里面没有自定义命令。
如何获取和扩展自定义命令?
根据"Writing Mercurial Extensions":
After extsetup, the cmdtable is copied into the global command table in 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")))
我想为 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
的键,我可以看到里面没有自定义命令。
如何获取和扩展自定义命令?
根据"Writing Mercurial Extensions":
After extsetup, the cmdtable is copied into the global command table in 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")))