Почему мне иногда нужно объединяться после извлечения, а не просто обновления? - PullRequest
13 голосов
/ 27 апреля 2011

Когда я впервые начал использовать hg, обновление, казалось, обладало почти волшебной способностью принимать недавно сделанные изменения и интегрировать их в мое локальное хранилище.В последнее время, однако, я замечаю, что даже если мои локальные изменения не конфликтуют с недавно извлеченными изменениями откуда-то еще, мне всегда приходится сливаться, что приводит к дополнительному набору изменений, который дублирует кучу изменений, которые у меня уже есть в одном излокальные строки кода (заголовки).

Я хочу понять, что вызывает hg требовать слияния, вместо того, чтобы просто поменять все изменения вместе с обновлением.Конфликт должен явно требовать слияния.Что еще?

1 Ответ

21 голосов
/ 27 апреля 2011

Необходимость слияния и обновления заключается не в том, конфликтует ли изменение, а в том, есть ли у вас разделение в истории фиксации.Если у вас есть история, подобная этой:

[A]--[B]--[C]--UNCOMMITTEDCHANGESHERE

, и вы опускаете - [D] ваши неподтвержденные изменения будут объединены с D при обновлении.

Если, однако, вы совершилитак что у вас есть:

[A]--[B]--[C]--[E]

и вы потянете, у вас будет:

[A]--[B]--[C]--[E]
             \
              -[D]

, и вам нужно будет объединиться, чтобы спуститься к одной голове.

Для справки, это лучшая идея.Обновление с незафиксированными изменениями является необратимым действием, которое всегда немного страшно.Если вы сделали обязательство, вы всегда можете отменить / повторить слияние, пока не будете довольны комбинацией.

PS Кто-то, вероятно, собирается предложить расширение fetch, и они совершенно не правы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...