Как проверить и применить сообщение коммит в Mercurial? - PullRequest
3 голосов
/ 22 сентября 2011

Какие все шаги требуются для проверки сообщения коммита с помощью набора регулярных выражений?Мы хотим работать в полуцентрализованной конфигурации, поэтому мне нужно решение для клона разработчика (local repository) и для нашего центрального клона (global repository).Я читал о Mercurial Hooks , но я немного растерялся, как собрать все вещи вместе.

Для local repository Мне нужен способ распространения скрипта валидации среди моих разработчиков.Я знаю, что хуки не распространяются при клонировании, поэтому мне нужен способ «включить» их в каждом новом клоне.Это будет сделано как часть нашего PrepareEnvironement.bat сценария, который мы в любом случае запускаем для каждого чистого клона.

Для двойной безопасности мне нужна аналогичная проверка на моем global repository.Не должно быть возможности вставить global repository коммит, который не проверяется.Я могу настроить его вручную - это одноразовая работа.

Я на Windows, поэтому установка всего, кроме TortoiseHG , не требуется.Это была уже битва за развертывание Mercurial .Любые другие зависимости не приветствуются.

1 Ответ

2 голосов
/ 22 сентября 2011

Вы можете использовать пример Проверка орфографии в качестве отправной точки.В конфигурации каждого разработчика вам необходимо использовать следующие ловушки:

pretxnchangegroup - запускается после того, как группа наборов изменений была перенесена в локальное хранилище из другого репозитория, но до того, как она станет постоянной.

pretxncommit - запускается после того, как новый набор изменений был создан локально, но до того, как он станет постоянным.

Для централизованного репо, я думаю, вам нужен только хук pretxnchangegroup, если на сервере не может произойти коммиттоже.Однако вам понадобится расширение Histedit для каждого из разработчиков, если удаленный репозиторий отклоняет один или несколько отправляемых наборов изменений.Это расширение позволяет им «редактировать» уже зафиксированные наборы изменений.Я думаю, что в большинстве случаев локальные перехватчики поймают проблему, но, как вы сказали, «на всякий случай».

Подробнее Подробности об обработке событий с перехватчиками можно найти в рт.ст. Книга .

...