Как лучше всего начать писать хук для Mercurial? - PullRequest
1 голос
/ 17 сентября 2010

Я новичок в Mercurial и хочу написать несколько хуков, чтобы предотвратить слияние определенных веток и тому подобное. Я ищу какой-то учебник, который проходит весь цикл.

Я посмотрел на API и эти примеры , но я все еще нахожу это запутанным. Я всегда лучше учился через учебное пособие / семинар, чем читая справочную страницу или подобное.

Я могу понять, как работает пример кода, но как мне заставить Mercurial распознавать функции?

например.) Я написал это, но я не понимаю, как заставить Mercurial запустить код перед фиксацией.

def is_bad_branch_name(ui, repo, **kwargs):
    """
    Checks that a commit is always done on a named branch.
    This function enforces Projectplace's branching convention.
    @return: True if the branch name is invalid.
    @returntype: Boolean
    """
    branch = repo[None].branch()
    branch_names = r'(TT|AZ)(-#)(\d)+(:)[\s\w]*'
    acceptable_branch_names = re.compile(branch_names)
    if not acceptable_branch_names.match(branch):
        ui.warn('invalid branch name %r (use <TT|AZ>-#<number>: <description>)\n')
        return True
    return False

Ответы [ 2 ]

1 голос
/ 27 октября 2010

Мне удалось написать и использовать хуки сейчас. Я обнаружил, что онлайн-документации не хватает, но это может быть проблемой с моей стороны. Я изучил пример кода и некоторые методы проб и ошибок, а также задал несколько вопросов здесь. :)

редактировать Для справки в будущем эта строка нужна Mercurial в вашей hgrc для запуска вышеуказанного кода перед фиксацией. Это раздел для хуков и путей к коду.

[hooks]
precommit.bad_branch_name = python:/path/to/hook/hook.py:is_bad_branch_name

Вам понадобится одна строка для каждой функции, которую вы хотите подключить. «precommit» означает, что ловушка будет запущена непосредственно перед выполнением фиксации. Таким образом, фиксация будет прервана, если хук вернет True. "bad_branch_name" - это просто идентификатор, вы можете ввести что угодно.

1 голос
/ 17 сентября 2010

Позвольте мне указать на очевидное, по единственной причине того, что я отчаянный представитель, который ***:

" Глава 10. Обработка событий хранилища с помощью хуков " в определенной книге BoS BoS.

Если вы не можете найти нужный крючок, задайте более конкретный вопрос.

Удачи!

...