Я пытаюсь создать крючок 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\UserName\mercurial.ini) я добавил следующий оператор:
[hooks] prechangegroup = python:./commit.py:getV1ID
Скрипт python запускается, если я помещаю его в папку .hg
, но не тогда, когда я это делаю. Может ли кто-нибудь помочь мне пролить свет на этот вопрос? Большое спасибо.
mercurial.ini
не кажется лучшим решением. Я нашел решение, которое я опубликую в ближайшее время. - person Vite Falcon   schedule 26.07.2011