У меня есть скрипт плагина, который подключается к start_commit, который называется start_commit.py.Это вызывает сценарий оболочки с именем .startcommit из базы дерева проекта каждый раз, когда происходит фиксация.Я использую это с данными Главной книги, чтобы сбросить все мои балансы для проверки перед каждой фиксацией.
Я не написал этот плагин, и я не могу определить, откуда я его получил, с помощью быстрого поиска, поэтому вотисточник (~ / .bazaar / plugins / start_commit.py):
from bzrlib import errors, mutabletree
def start_commit(tree):
"""This hook will execute tree/on-commit."""
import os,subprocess
from bzrlib import errors
abspath = tree.abspath('.startcommit')
# if there is no on-commit, bail
if not os.path.exists(abspath):
return
try:
subprocess.check_call(abspath)
# if precommit fails (process return not zero) cancel commit.
except subprocess.CalledProcessError:
raise errors.BzrError("on-commit failed")
mutabletree.MutableTree.hooks.install_named_hook('start_commit', start_commit,
"tree on-commit")
Если кто-то знает, я был бы рад отдать должное первоначальному автору за этот фрагмент.В противном случае, я надеюсь, это поможет!