Как я могу создать ртутный крючок, который предотвращает появление новых голов? - PullRequest
3 голосов
/ 04 декабря 2010

У меня есть несколько репозиториев, которые были конвертированы из SVN, и, двигаясь вперед, мы хотим убедиться, что когда люди толкают в репозиторий, они не могут создавать дополнительные головы. На вики-странице TipsAndTricks есть несколько крючков, которые предотвращают толкание при наличии нескольких головок, но как мне создать крючок, который предотвращает толкание новых голов?

Кажется, что правильный способ сделать это - сравнить количество головок из ревизии 0: parent, а затем сравнить 0: tip, но я не могу найти способ сделать это. hg heads -r $HG_NODE показывает мне только количество голов после первого нажатия пользователя.

Ответы [ 5 ]

5 голосов
/ 04 декабря 2010

По умолчанию hg push предотвращает нажатие дополнительных головок, для чего требуется флаг -f. Вы можете написать расширение Mercurial, чтобы оно игнорировало этот флаг, эффективно отключая нажатие новых головок.

Тем не менее, я бы поставил под сомнение мудрость механического запрета новых голов. Вместо этого я бы научил вашу команду правильно слиться перед тем, как толкать, и в то же время позволял им делать это в тех редких случаях, когда это имеет смысл, тем более что Mercurial уже предупреждает вас.

3 голосов
/ 06 декабря 2010

Mercurial wiki - Советы и хитрости - Предотвратите толчок, который может создать несколько голов

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

1 голос
/ 15 января 2014
1 голос
/ 06 декабря 2010

Проверьте эту ссылку. Автоматизирует процесс разрешения нескольких головок

Ртутный крюк: запрет нескольких голов

0 голосов
/ 06 декабря 2010

Используйте hg ci -m 'Closed branch feature-x' --close-branch, чтобы закрыть все головы, кроме одной, а затем примените обычный одноголовочный крючок.

...