2017-02-22 105 views
2

У меня есть проект с одной ветвью, по умолчанию. Я уже несколько раз повторяю эту ветку с одной и той же веткой, и я использую теги для обозначения этапов номера версии.В чем недостаток управления хранилищем с несколькими головами?

Исходный код проекта немного изменился между тегами 1.0.7 и 1.1.0 (текущий). Однако на 1.0.7 есть некоторые пользователи, нуждающиеся в исправлении ошибок. Поэтому я проверил источник, обновленный до тега 1.0.7, внедрил исправление и зафиксировал. Это было помечено 1.0.8 и, вероятно, будет последним фиксатором на линии 1.0.x.

У меня теперь две головы по умолчанию. Я ожидал этого. Но когда я попытался нажать на нашу учетную запись BitBucket, я получил предупреждение от hg: «push создает новую удаленную головку». Зачитывая это сообщение, я получаю много ответов, объясняя, почему сообщение есть, и для большинства людей ответ заключается только в том, чтобы объединиться. Тем не менее, я не думаю, что хочу этого в этом случае. Эти две ветви несовместимы.

Похоже, что я могу использовать опцию -f, чтобы принудительно надавить новую голову на удаленный репозиторий, однако это, как представляется, не поощряется как с помощью справки hg, так и различными сообщениями в Интернете без объяснения причин. Итак, каков недостаток этого? Кажется, я все еще могу обновить все теги/ревизии, над которыми я хочу продолжить работу. Если я подтолкнул эту голову к учетной записи BitBucket, я каким-то образом выстрелил бы себе в ногу?

+1

Ваше использование меня совсем не беспокоит. Я думаю, что основное возражение состояло бы в том, что не совсем понятно, какие изменения необходимо обновить после клонирования репо. – storm

ответ

3

Наличие нескольких головок прекрасно.

Если есть несколько головок, и нет никаких указаний относительно их назначения, другим может быть трудно увидеть, где они должны продолжаться, и что такое голова, которая содержит новейшие разработки, например, который получает новые функции.

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

Есть еще один небольшой улов: Mercurial will, on clone, обновляется до последней фиксации в ветке по умолчанию - например. голова, которая получила последнюю фиксацию. Если это ваша версия 1.0.x, это может быть неудачно. Однако вы можете исправить это, добавив специальную закладку «@» к главной линии или главе разработки. Mercurial всегда будет обновляться до головы, которая несет эту закладку, если она присутствует - независимо от того, какая голова имеет новейшую фиксацию.

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

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