Вы хотите, чтобы mercurial делал что-то автоматически, когда вы клонировали репо (обновляйте крючки или конфигурацию). Documentation говорит, что это не возможно, и дает очень хорошие причины:
Hooks do not propagate
In Mercurial, hooks are not revision controlled, and do not propagate when you clone,
or pull from, a repository. The reason for this is simple: a hook is a completely
arbitrary piece of executable code. It runs under your user identity, with your
privilege level, on your machine. No comments
It would be extremely reckless for any distributed revision control system to
implement revision-controlled hooks, as this would offer an easily exploitable way to
subvert the accounts of users of the revision control system. No comments
Так ясно, Mercurial сам не решит вашу проблему. Вы четко заявляете, что не хотите ничего, кроме меркуриального, решить свою проблему, поэтому ответ: то, что вы просите, невозможно.
Единственный способ решить вашу проблему состоит в том, что все ваши пользователи должны будут запускать/устанавливать по крайней мере один раз, когда данный скрипт выполняет нужные действия, что-то вроде установки правильных крючков.
Если вы хотите быть умными об этом:
- создать одноразовый скрипт для запуска на который будет устанавливать крюк, чтобы скопировать правильный конфиг в .hg или пользователь
- убедитесь, что крюк, после установки, можно обновить скрипт для распространения обновлений конфигурации для пользователей
- делает крюк добавить некоторые специальные маркировки на сообщениях фиксации
- отказываются от центрального хранилища коммит, который не несет специальное сообщение
Немного сложнее, но это ближайший я могу себе представить, чтобы ваши требования:
- пользователя запустить скрипт один раз, и они забывают
- вы можете убедиться, что если не запустить его, они не может совершить центральные репо
Да, специальные сценарии сборки или общие конфигурации сервера сборки являются следующим лучшим решением. Я просто надеялся, что для этого в HG есть некоторая легко обнаруживаемая функциональность. --- «Документация говорит, что это невозможно, и дает некоторые очень веские причины». Где это сказано? Похоже на то, что я хочу читать. – Deestan
Я отредактировал свою запись со ссылками на соответствующий документ. –