Mercurial Hook如何验证已使用的标志并同步别名?

时间:2019-04-15 13:47:02

标签: mercurial mercurial-hook

我想为用Python编写的Mercurial编写一个pre- hook。我想检查传递给pull命令的标志,并检查同步别名(“远程URL”)。

我没注意到类似的东西:

1 个答案:

答案 0 :(得分:1)

kwargs['args']似乎包含命令(作为单个字符串)和所有命令自变量(包括拉同步别名URL,至少在通过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