Mercurial - закрыть ветку по умолчанию и заменить на именованную ветку как новую по умолчанию

В ртутном репо "дефолт" ветвь сильно устарела до такой степени, что уже не имеет смысла сливаться с изменениями из "развивать»именованная ветвь с последней развернутой версией приложения.

Вместо того, чтобы объединить развитие в дефолт, как я могу закрыть текущую ветку по умолчанию, а затем создать новую ветку по умолчанию, используя заголовок из разработки? I '

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

Спасибо!

 Edward20 февр. 2013 г., 18:59
в качестве альтернативы, вы могли быupdate по умолчанию иmerge с разработчиком, но перед совершением слияния вы делаете точную копию разработки.
 kgx20 февр. 2013 г., 19:42
Это на самом деле работает, но как я могу это сделать?

Ответы на вопрос(3)

Я думаю, что лучше использовать концепцию в Tortoisehg, чтобы объяснить, как она работает.

hg update развивать отрасльвыберите заголовок ветки по умолчанию и выберите объединить с локальнойзатем выберите отменить все изменения от цели слияния (другое), таким образом, по умолчанию объединяется в разработку, не затрагивая разработкузатем ответвление по умолчанию от главы разработки, используйтеhg branch defaultпо умолчанию перезапускается снова
Решение Вопроса

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

hg update -C default
hg -y merge --tool internal:fail develop
hg revert --all --no-backup -r develop
hg resolve --all --mark
hg commit -m "merge updating default to current develop"

Это означает, что любые конфликты приведут к неразрешенному слиянию. Затем вы вернетесьвсе быть таким же, как наdevelop ветвь (без резервной копии, поэтому вы неосталось много .orig файлов).

 Nikola Davidovic13 янв. 2015 г., 23:13
Великолепно, спасибо
 kgx21 февр. 2013 г., 18:38
Тим это отлично сработало. Спасибо за вашу помощь! Проходя как ваш ответ, так и Эдвардаs Я только что многое узнал о HG.
 Edward22 февр. 2013 г., 20:10
Это лучшее решение! Спасибо!

На основании вашего комментария, что закрывать ветку не обязательно, здесь 's последовательность шагов, которая должна привести ветку по умолчанию в соответствие с ветвью разработки:

hg update defaulthg merge --tool internal:other - слиться с привилегией развивающейся ветвиhg diff -r develop - сравнить с разработкой, чтобы убедиться, что у вас есть точная копияhg commit -m "merge updating default to current develop"

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

 kgx21 февр. 2013 г., 18:43
Эдвард, спасибо за ответ. Я проверил ваш процесс и получил следующий шаг на шаге 2: abort: branch 'дефолт' имеет одну голову - пожалуйста, слить с явной рев. В моем репо более 2 голов из-за нескольких других активных именованных веток. В любом случае, это первоначальное решение явно заставило нас задуматься, спасибо еще раз. Также hg diff -r - полезная команда, которую я раньше не видел.

Ваш ответ на вопрос