Mercurial - Когда использовать обновление

Когда я использую update vs merge? Если я делаю попытку из удаленного репозитория, я читаю, что мне нужно сделать обновление, чтобы получить эти изменения в моем рабочем каталоге. Но в других случаях я читаю, что мне нужно слить.

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

Что я здесь не понимаю?

Ответы

Ответ 1

Если у вас есть локальные коммиты: слияние. Если у вас есть незафиксированные локальные модификации: обновление (которое будет сливаться).

Обычно, когда вы совершаете фиксацию локально, она разворачивает дерево, когда вы тянете. В этом случае вам всегда нужно объединить (или переустановить с расширением переадресации). Если у вас есть незафиксированные локальные модификации, тогда, когда вы тянете, вы можете обновлять и объединять изменения в рабочее пространство.

Ответ 2

  • hg update заключается в том, чтобы сделать ваш рабочий каталог такой же, как данная версия
  • hg merge не будет reset вашего рабочего каталога для данной версии (он все равно относится к тому же), но объединит изменения из другой версии в ваш текущий рабочий каталог.

Итак, после pull, обновление hg изменит ваш рабочий каталог, чтобы отразить то, что вы потянули в свой репозиторий.
Но hg merge не будет reset вашего рабочего каталога, только объедините изменения между вашим рабочим каталогом и тем, что вы потянули.

hg pull -u будет тянуть и обновляться, отказываясь объединять или перезаписывать локальные изменения.

  • Если pull добавит новый HEAD в ваше репо, вам нужно будет объединить
added 1 changesets with 1 changes to 1 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
  • Если pull не добавляет нового HEAD в ваше репо, достаточно простого обновления