Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

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

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

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