Как продлить команду другого расширения в 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
Я вижу, что внутри нет никаких пользовательских команд.
Как я могу получить и расширить пользовательскую команду?
1 ответ
Решение
Согласно "Написание Mercurial Extensions":
После extsetup командная таблица копируется в глобальную таблицу команд в Mercurial.
Поэтому мне нужно изменить команду внутри расширения cmdtable
сам. Это немного смешно, но пока работает:
from hgext import convert
def extsetup(ui):
entry = extensions.wrapcommand(convert.cmdtable, 'convert', convert_cmd)
entry[1].append(('', 'test', None, _("test option")))