Mercurial - когда использовать обновление - PullRequest
15 голосов
/ 23 июня 2010

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

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

Чего я тут не понимаю?

Ответы [ 2 ]

17 голосов
/ 23 июня 2010

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

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

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

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

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

  • Если вы добавите в свою репо новую ГОЛОВКУ, вам нужно слить
added 1 changesets with 1 changes to 1 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
  • Если вы не добавите в свой репозиторий новую HEAD, достаточно простого обновления
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...