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 в ваше репо, достаточно простого обновления