#mercurial #mercurial-hook
#mercurial #mercurial-hook
Вопрос:
Я хотел бы написать предварительный перехват для Mercurial, написанный на Python. Я хотел бы проверить флаги, переданные pull
команде, а также проверить псевдоним синхронизации («удаленный URL»).
Я не заметил ничего подобного на:
Ответ №1:
kwargs['args']
кажется, содержит команду (в виде одной строки) и все аргументы команды (включая URL-адрес псевдонима pull sync, по крайней мере, при извлечении через TortoiseHg).
Итак, желаемый перехват может быть примерно таким:
from mercurial import ui
def check_pull(ui, repo, **kwargs):
"""
[hooks]
pre-pull.check_pull = python:.hg/hooks/my_hooks.py:check_pull
"""
args = kwargs['args']
is_pull_all = not '--bookmark' in args
is_pull_clowncopter = 'http://hg.example.com/clowncopter/' in args
if is_pull_all and is_pull_clowncopter:
ui.warn('Detected pull all from clowncoper. Did you forget to switch to the main repository or target a specific bookmark?n')
return True