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