Как отказаться от hg merge? - PullRequest
       29

Как отказаться от hg merge?

122 голосов
/ 03 апреля 2010

Я новичок в сотрудничестве с Mercurial. Моя ситуация:

  • Другой программист изменил версию 1 файла, чтобы заменить отступы с 4 пробелами на отступ с 2 пробелами. (То есть изменил каждую строку.) Вызовите эту версию 2, перенесенную в удаленный репозиторий.
  • Я внес существенные изменения в версию 1 с различными изменениями кода в моей локальной рабочей области. Назовите эту версию 3.
  • Я hg pull ed и hg merge d, не имея четкого представления о том, что происходит.
  • Конфликты бесчисленные и не очень существенные.

Так что мне бы очень хотелось, чтобы я изменил свой локальный репо на 2 пробела перед слиянием; тогда слияние будет тривиальным (я полагаю). Но я не могу отступить. Я думаю, что мне нужно hg update -r 3, но там написано abort: outstanding uncommitted merges.

Как я могу отменить слияние, изменить интервалы в моем локальном репо и заново слиться?

Ответы [ 4 ]

121 голосов
/ 01 июня 2010

Кстати: если вы просто отмените сделанное слияние, а 3 не является вашим номером ревизии, вы можете сделать это:

hg update -C -r .
118 голосов
/ 03 апреля 2010

Вы можете отменить незафиксированные изменения с помощью флага -C (или --clean):

hg update -C -r 3

ВНИМАНИЕ: все, что не было совершено, исчезнет!

После этого вам, вероятно, следует использовать какой-либо инструмент форматирования кода для выполнения всей операции или, по крайней мере, некоторые операции поиска и замены с помощью регулярных выражений. Что-то такое простое, как замена того, что соответствует ^____ (используйте 4 пробела вместо подчеркивания) на __ (2 пробела), повторенное несколько раз (если у вас безумно некий вложенный код), должно работать.

30 голосов
/ 19 октября 2015

Чтобы отменить незафиксированное слияние, используйте

hg update --clean

, который извлечет чистую копию исходного родителя слияния, потеряв все изменения.

2 голосов
/ 03 апреля 2010

Мне, видимо, просто нужно было hg update -C -r 3, которое перезаписывает мои локальные файлы с учетом rev (что я и думал, hg update подойдет; но я ошибался.) Спасибо за мою помощь!

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