Возможно ли для моего крючка Mercurial вызывать код из другого файла? - PullRequest
3 голосов
/ 27 октября 2010

У меня есть подключаемая функция с именем precommit_bad_branch, которая импортирует hook_utils.При вызове precommit_bad_branch через коммит я получаю следующее сообщение об ошибке:

error: precommit.branch_check hook raised an exception: No module named hook_utils
abort: No module named hook_utils!

Похоже, мне не разрешено звонить hook_utils с precommit_bad_branch.Код работает нормально, если я вызываю его явно, без привлечения Mercurial.

Возможно ли, чтобы мой хук вызывал код из другого файла?

Моя часть хука hgrc выглядит так:1014 *

1 Ответ

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

Поместите каталог C:\workspaces\hg_hooks в PYTHONPATH, и вы сможете написать

[hooks]
precommit.branch_check = python:next_hooks.precommit_bad_branch

в вашем файле конфигурации, и вы также сможете сделать

import hook_utils

внутри любого файла Python, включая файл next_hooks.py.

Кроме того, вы можете изменить sys.path из next_hooks.py, возможно, с помощью кода, подобного следующему:

import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

import hook_utils
...