24 нояб. 2013 г.

.hgrc



Используем в новом большом проекте Jenkins. Он очень хорош, для того чтобы дать тебе вовремя понять, что ты спорол какую-то чушь, и теперь тесты закосячены, а сними и код. Но как быть, если самодисциплины не всегда хватает на выполнение тестов перед коммитом и проверку кода на соответствие стандартам? Хуки! Мы используем mercurial, для него уже есть https://pypi.python.org/pypi/hghooks/.
[hooks]
pretxncommit.pep8 = python:hghooks.code.pep8hook
pretxncommit.pyflakes = python:hghooks.code.pyflakeshook
pretxncommit.pdb = python:hghooks.code.pdbhook
pretxncommit.jslint = python:hghooks.code.jslinthook

[hghooks]
strict_checking = true

[pep8]
ignore = E501
Осталось написать собственный хук, который будет откатывать коммиты с запоротыми тестами.
UPD:
preoutgoing.confirm = hg summary; read -p 'Are you sure you want to push to remote? (y/n): '; echo $REPLY | grep -q 'y'

3 комментария:

tier комментирует...

Я бы сказал, что это скорее защита не от отсутствия самодисциплины (у кого ее в принципе нет - те закономерно освобождаются от работы, где она требуется), а от случайного коммита, который забыли потестить, либо локально тесты проходят, а в другом окружении - нет.

Ivan Markeyev комментирует...

Господь с вами, кризис на дворе. Увольнять за случайный коммит не стоит (именно он ведь обсуждался в посте, разве нет?), или вы о чем то своем )))?

Дмитрий Власов комментирует...

Если работаешь с кем-то над одним модулем и часто сливаешь изменения, то ждать по 20 мин пока пройдут тесты как-то не весело =) Вообщем, для всех веток по умолчанию такая радость, ИМХО, не нужна.