Хук Mercurial Pre-Commit: как подключиться к программе Python в текущий каталог?

Я пытаюсь создать ловушку 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 , но не тогда, когда я это делаю. Может ли кто-нибудь помочь мне пролить свет на эту проблему? Большое спасибо.

9
задан Vite Falcon 26 July 2011 в 11:09
поделиться