Когда вы обновляете до D
и пересаживаете F::J
, Mercurial выполняет несколько слияний.Это начнется с этого слияния:
M = three_way_merge(local=D, other=F, base=E)
Если мы напишем +d
для дельты между состояниями C
и D
, то мы начнем с:
+d +e +f
---- C ---- D ---- E ---- F ----
Поверните график на 90 градусов по часовой стрелке, и вышеупомянутое трехстороннее слияние выглядит следующим образом:
-e
.---- D
/
E
\
'---- F
+f
То есть мы притворяемся, что начали с E
и применили противоположное -e
, чтобы добраться до1017 *.Я думаю, что это обратный патч +e
.Начиная с E
мы также перешли в состояние F
с нормальной дельтой +f
.Здесь нет ничего странного - у нас уже есть все состояния (D
, E
и F
) в хранилище.С этой точки зрения ясно, что мы можем объединить D
и F
.
Объединение - это вопрос "завершения алмаза".Таким образом, мы находим новое состояние M
, которое представляет собой смесь D
и F
и где разница от D
до M
аналогична +f
, а разница от F
до M
похож на -e
.Это выглядит так:
-e +f'
.---- D ----.
/ \
E M
\ /
'---- F ----'
+f -e'
Дельта +f
стала +f'
, а дельта -e
стала -e'
.Это обычное трехстороннее слияние, но эффект интересен: мы применили F
к D
вместо E
!
После слияния второй родительский элемент M
в F
отброшено:
-e +f'
.---- D ----.
/ \
E M
\
'---- F
+f
Повторяем: мы скопировали «эффект» F
в D
, то есть нашли дельту (+f'
), которая применяласьна D
дают тот же эффект, что и при применении +f
к E
.Мы можем немного выпрямить график, чтобы получить:
+f'
--- D ---- M
\
'---- E ---- F
+e +f
В результате F
прививается на D
с использованием полного трехстороннего механизма.
Q1: Что здесь произошло?Так ....... как это работает?Почему это лучше?
A1: Использование слияний лучше, чем исправлений, поскольку механизм слияния учитывает такие вещи, как переименования.
Q2: Является ли это слияние обычным трехсторонним слиянием с использованием D, J 'и M1?
A2: Да, прививка не меняет топологию графа.
Q3: Имеет ли Mercurial сохраненную / использованную дополнительную информацию об операции пересадки, чтобы помочь ей в слиянии?
A3: №
Q4: Каковы потенциальные проблемы с таким потоком?
A4: Отс точки зрения слияния все должно работать хорошо.Это дублирует некоторую историю, которая может сбивать людей с толку.