簡體   English   中英

如何在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的鍵,我可以看到里面沒有自定義命令。

如何獲取和擴展自定義命令?

根據“書面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")))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM