Я пытаюсь создать перехват Mercurial, который запускается, когда коммиты помещаются в главный репозиторий. Я создал скрипт Python, как показано ниже:
# commit.py
from mercurial import ui, hg
from mercurial.i18n import gettext as _
def getV1ID(ui, repo, **kwargs):
ui.write("The hook works!!!")
v1id = ui.prompt('Enter the VersionOne ID')
ui.write('VersionOne ID: '+v1id)
Для каждой ветви это commit.py
дублируется, так как содержит механизмы, которые должны быть запущены, прежде чем код будет помещен в главное хранилище. Толчок должен быть успешным, только если эти механизмы предварительного толчка пройдут. Пользователи могут изменить свой локальный commit.py так, чтобы они выполняли только подмножество этих предварительных операций в зависимости от проекта, над которым они работают, и каждый человек мог работать над несколькими проектами одновременно. Таким образом, commit.py
не может быть глобальным скриптом Python, который может находиться в папке .hg
.
Чтобы Mercurial запускался локально commit.py
, в моем файле mercurial.ini (в C: \ Users \ Имя_пользователя \ mercurial.ini) я добавил следующее утверждение:
[hooks]
prechangegroup = python:./commit.py:getV1ID
Сценарий python запускается, если я помещаю его в папку .hg
, но не когда я делаю это. Может ли кто-нибудь помочь мне пролить свет на этот вопрос? Большое спасибо.