Roman Prokofyev

Chief Scientist at FAIRTIQ. I work on making public transport accessible for everyone.

Windows TortoiseHg pre-commit hook bug

04 Sep 2011 » mercurial, hook, bug, hghooks, hg, tortoisehg

Пост о баге, с которым можно столкнуться при настройке хуков в mercurial, работая с клиентом TortoiseHg под Windows.

Итак, я настраивал хуки в mercurial для автоматической проверки python-кода с помощью пакета hghooks. Данный пакет содержит готовые хуки для провеки кода на соответствие PEP8 и с помощью анализатора pyflakes.

В документации предлагается просто добавить к конфиг mercurial (hgrc, mercurial.ini) следующие строки:

[hooks]
pretxncommit.pep8 = python:hghooks.code.pep8hook
pretxncommit.pyflakes = python:hghooks.code.pyflakeshook
pretxncommit.pdb = python:hghooks.code.pdbhook

Однако в моём случае после этой настройки комит вылетел с ошибкой вида:

abort: pretxncommit.pep8 hook is invalid (import of "hghooks.code" failed)

Дело в том, что клиент TortoiseHg ** не умеет использовать никакие установленные библиотеки кроме тех из файла **library.zip, расположенного по умолчанию в c:\Program Files\TortoiseHg**. Поэтому для устранения ошибки надо добавить в архив каталоги **hghooks, pyflakes **и файл **pep8.py.