Возьмем простой пример: я работаю над ветвью по умолчанию, исправляю некоторые изменения, сделанные локально, и я вытащил еще несколько из главного репозитория. Я работаю в течение нескольких дней в изолированном локальном репозитории, поэтому есть немало изменений для слияния, прежде чем я смогу вернуть свои результаты в мастер.
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
после слияния предполагает это.)