2016-12-15 22 views
1

Я использую серверные (удаленные) крючки для предотвращения определенных типов нажатий. Помимо всего прочего, я хочу запретить толчки, которые создают новые головки в ртутном хранилище, даже если они были нажаты с --force.Mercurial hooks: Как я могу обнаружить вторую голову в конкретном нажатии?

Я могу думать только об одном способе достижения этого: просто перебирайте предков и терпите неудачу на первом предке, у которого есть двое детей.

Этот подход действительно работает, но я буду очень рад, если кто-то покажет мне более элегантный способ достижения того же.

+0

Посмотрите на существующий вопрос и, в частности, принято отвечать вместе со своими комментариями: HTTP: // StackOverflow. com/вопросы/1705921/полезные-меркуриальные крюки Также см. https://www.mercurial-scm.org/wiki/TipsAndTricks#Prevent_a_push_that_would_create_multiple_heads – planetmaker

ответ

1

ОК, так что получается, что это сделано намного проще, чем я ожидал. В основном все, что вам нужно, чтобы узнать номер главы в объекте репо репо, так:

if repo.heads() > 1: 
    return True 
+0

, кроме того, ваше первое предложение не позволит разделить ветки, даже если они сливаются и заканчиваются с одной головой, потому что там будет точка бифуркации с двумя детьми, поэтому отклонил – arhak

+0

@arhak хороший момент! В нашем случае, хотя слияния не допускаются, поэтому нет такой вещи, как бифуркация. – shabunc

 Смежные вопросы

  • Нет связанных вопросов^_^