2013-03-15 2 views
7

Что такое меркурийный эквивалент слияния без быстрой перемотки вперед (в случае быстрой перемотки вперед)?Есть ли эквивалент ртути для гибридов без ускоренного слияния?

Редактировать

Предположим, у вас есть ответвление/закладку в вашей голове/кончике мастер/по умолчанию:

o feature 
| 
o 
| 
o master/default 
| 
... 

Простая быстрая перемотка вперед слияние приводит к:

o feature/master/default 
| 
o 
| 
o 
| 
... 

Непрерывное слияние будет выглядеть так:

o merge commit - feature/master/default 
| \ 
| o  
| | 
| o 
|/
o 
| 
... 
+0

«Обновить»? Разве это не то, что происходит с быстрым слиянием? Это просто обновление? Конечно, Mercurial не обнаружит этого, но я не думаю, что он попытается выполнить слияние. –

+0

Он просил альтернативы быстрой перемотки, а не передовой вариант. :) –

+0

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

ответ

7

Это зависит от того, как вы передали свою ветку функций.

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

hg update default 
hg branch feature-1 
...work... 
hg commit -m "implemented feature on named branch" 
hg update default 
hg merge feature-1 
hg commit -m "merged feature-1 to default" 

Это приведет к графику, как это:

o merged feature-1 to default 
|\ 
| o feature-1: implemented feature on named branch 
|/ 
o 
| 

Это работает только с названными ветвями (то есть ветви создаются с помощью команды hg branch). Он не работает для анонимных филиалов или закладок.

Вы также можете быть заинтересованы в this thread(dead-link) в списке Mercurial mail, который обсуждает проблему.

+0

Это была бы идея для людей, которые действительно любят «пунктуацию» набора изменений слияния для слияния функции. У вас есть именованная ветка, называемая «newfeature», а затем несколько закладок внутри этой ветви. – Omnifarious

+0

Безусловно, лучшая часть этого ответа - последняя строка. – Ringding

+0

Вы можете выполнить слияние эдипов в Mercurial с анонимными головами, используя команду «debugsetparents». См. Http://hgtip.com/tips/advanced/2010-04-23-debug-command-tricks/#3-simulate-gits-no-ff-merges-with-anonymous-heads. Я думаю, что отладочные команды не получают гарантии совместимости остальной части Mercurial. – jwd