Как я могу вручную запустить этот файл для устранения проблемы? мой файл mailer.py также находится в папке хуков, а файл mailer.conf находится вне папки хуков.
Это просто: просто запустите команду вручную.
$ cd $REPOS #Where ever that is...
$ REV=230 #Whatever the revision number is
$ hooks/mailer.py commit . $REV mailer.conf
Вы можете скопировать mailer.py в другой файл и поэкспериментировать с ним. Добавьте несколько операторов печати, запустите их в отладчике и т. Д. Например, вы, вероятно, захотите изменить фактическую почтовую часть своей программы, чтобы не отправлять все по почте разработчикам, пока вы не будете готовы отладить конкретный механизм отправки. Разработчикам не нравится, что их почтовые ящики забрасывают кучей тестов ловушек после фиксации.
$ cp hooks/mailer.py hooks/mailer2.py
$ cp mailer.conf mailer2.conf
$ hooks/mailer2.py commit . $REV mailer.conf
Я бы посоветовал вам отключить ловушку после фиксации (в Unix / Linux достаточно снять исполняемый бит или просто переименовать post-commit
в post-commit.temp
). затем попросите пользователя зафиксировать свое изменение.
После фиксации изменения у вас будет номер ревизии фиксации, вызвавшей проблему. Теперь вы можете использовать этот номер ревизии при ручном запуске ловушки после фиксации.
Полезный совет
Если вы создаете ловушку pre-commit, разрешите ловушке принимать либо номер транзакции, либо номер редакции:
# Transaction number in pre-commit script:
REPOS="$1"
TRX="$2"
"$REPOS/hooks/myscript" -t $TRX "$REPOS"
Из командной строки:
cd $REPOS
hooks/myscript -r $REVISION .
Таким образом, вы можете отлаживать ловушку перед фиксацией с уже зафиксированными ревизиями. Это намного, намного проще, чем пытаться отлаживать, повторяя одно и то же изменение снова и снова.
person
David W.
schedule
27.02.2012