Возьмем простой пример: я работаю над веткой по умолчанию, некоторые изменения были зафиксированы локально, и я вытащил еще несколько из главного репозитория. Я работал в течение нескольких дней в своем изолированном локальном репозитории, поэтому нужно объединить немало изменений, прежде чем я смогу отправить свои результаты обратно в master.
default ---o-o-o-o-o-o-o-o-o-o-o (pulled stuff)
\
o----o------------o (my stuff)
Теперь я могу сделать две вещи.
Вариант № 1:
hg pull
hg merge
Результат № 1:
default ---o-o-o-o-o-o-o-o-o-o-o
\ \
o----o------------o-O
Вариант № 2:
hg pull
hg update
hg merge
Результат № 2:
default ---o-o-o-o-o-o-o-o-o-o-o-O
\ /
o----o------------o
Эти два результата кажутся мне изоморфными, но на практике кажется, что вариант № 2 приводит к меньшим наборам изменений (поскольку он применяет только мои несколько изменений к основной линии вместо применения всех изменений основной линии к моим нескольким). *
Мой вопрос: имеет ли это значение? Должен ли я заботиться о направлении моих слияний? Я экономлю место, если я делаю это? (Выполнение hg log --patch --rev tip
после слияния предполагает это.)