#mercurial #merge #push
#mercurial #слияние #толкать
Вопрос:
разветвление —
[default]$ hg branch talks
[talks]$ <... some commits ...>
[talks]$ hg update default
слияние обратно —
[default]$ hg merge talks
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
отправка в удаленное хранилище —
[default]$ hg commit -m "merging talks to default"
[default]$ $ hg push
abort: push creates new remote branches: talks!
(use 'hg push --new-branch' to create new remote branches)
Дальнейшее расследование показало, что удаленное хранилище не хочет, чтобы у меня было несколько головок на удаленном конце. Но я только что выполнил слияние, чтобы объединить две головки в одну, не так ли?
График из hg serve
также, похоже, согласен со мной (я надеюсь)
Тем не менее, я также вижу две головки из hg heads
[default]$ hg branches
default 9:85752ecd6326
talks 8:2b00714d76d5 (inactive)
Ответ №1:
Решение содержится в сообщении об отмене: use 'hg push --new-branch'
. Вы создали именованную ветвь с именем talks
, поэтому ей нужен этот дополнительный переключатель, независимо от того, объединили ли вы именованную ветвь обратно по умолчанию.
Ответ №2:
Я предполагаю, что вы неправильно поняли функцию перехода. Вы только что создали ветку, имя которой будет вечно храниться в репозитории. Я подозреваю, что вы на самом деле не хотели этого делать. Возможно, вы захотите изучить функцию закладок для локальных ветвей, имена которых в конечном итоге не сохраняются в репозитории вечно.
Mercurial отказывается выполнять запросы, которые добавляют новые глобальные названия ветвей в отправляемый репозиторий, потому что это очень редко то, что вы действительно хотите сделать. hg push --new-branch
сообщит Mercurial, что да, вы действительно собираетесь это сделать.
Две главы, которые вы видите, вводят в заблуждение. Обратите внимание, что один заголовок указан как «(неактивный)». Это просто означает, что это последнее изменение в глобальной ветке, но не фактический заголовок. Вы часто хотите видеть заголовки ветвей, даже если у этих заголовков на самом деле есть дочерние элементы и они на самом деле не являются заголовками.
В качестве небольшого отступления… Некоторое время назад я написал код, который добавил эту функцию в команду ‘heads’. 🙂