Я новичок в сотрудничестве с Mercurial. Моя ситуация:
- Другой программист изменил версию 1 файла, заменив отступы с 4 пробелами отступом с 2 пробелами. (Т.е. изменил каждую строку.) Назовите эту версию 2, отправленную в удаленное репо.
- Я внес существенные изменения rev 1 с различными изменениями кода в моем локальном рабочем пространстве. Назовите это rev 3.
- Я ехал
hg pull
иhg merge
не понимал, что происходит. - Конфликтов бесчисленное множество, и они не очень существенны.
Так что мне очень жаль, что я не изменил свое локальное репо на двухпространственные отступы перед слиянием; тогда слияние будет тривиальным (я полагаю). Но я не могу отступить. Думаю, мне нужно, hg update -r 3
но там сказано abort: outstanding uncommitted merges
.
Как я могу отменить слияние, изменить интервал в моем локальном репо и повторно выполнить слияние?
M-x indent-region
сделал трюк с redent.Кстати: если вы просто отмените сделанное слияние, а 3 не является вашим номером ревизии, вы можете сделать это:
источник
.
- это ярлык для предыдущей версии.hg help update
я получил: Если набор изменений не указан, обновите его до конца текущей именованной ветки ... и совет не всегда может быть вашей текущей версией, над которой вы работаете. Я пока не тестировал ..-r .
- это то же самоеЧтобы отменить незафиксированное слияние, используйте
который проверит чистую копию исходного родителя слияния, потеряв все изменения.
источник
По-видимому, мне просто нужно было это сделать
hg update -C -r 3
, что перезаписывает мои локальные файлы с учетом rev (это то, что я думал, чтоhg update
сойдет; но я ошибался.) Спасибо за мою помощь!источник
-C
или--clean
- это то, как вы говорите Mercurial продолжить работу, даже если он выбросит некоторые измененные файлы. Вы правы, чтоhg update -r X
обычно приводит вас к ревизии X, но когда вы участвуете в слиянии, вам нужно настаивать немного больше :-)