Как продлить команду другого расширения в 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")))
Другие вопросы по тегам