У меня есть часть программного обеспечения в репозитории Mercurial.
Я упаковываю свой программный проект как пакет Debian. Кажется, что стандартный способ сделать это - создать отдельную ветку для файлов пакета Debian, которые находятся в подкаталоге debian
.
Одна проблема, с которой я продолжаю сталкиваться, заключается в том, что я забываю, в какой ветке я нахожусь, и случайно переключаюсь на неправильную ветку. Такое случается часто и сильно раздражает. Когда это происходит, я обычно нажимаю на удаленный, прежде чем осознаю проблему, а затем мне приходится вручную исправлять локальные и удаленные репозитории, что является проблемой.
Единственный вариант, о котором я могу думать, - это иметь ловушку перед фиксацией, которая прерывается, если я пытаюсь выполнить фиксацию в неправильную ветку.
Чтобы быть конкретным, предположим, что основная ветвь называется default
, а ветка, содержащая файлы Debian, называется debian
. Затем я хочу, чтобы фиксации в ветке default
выполнялись успешно, только если ни один из файлов в фиксации не находится в каталоге debian
. Я хочу, чтобы фиксации в каталоге debian
выполнялись успешно, только если все файлы в фиксации находятся в каталоге debian
.
Я потратил некоторое время, читая главу о Mercurial Hooks и просматривая примеры в Hg Book, но до сих пор не знаю, как это сделать. У меня действительно сложилось сильное впечатление, что для чего-то вроде этого я должен вызывать внешний скрипт Python, вероятно, в .hg/
.