Ответ 1
hg update -C <one of the two merge changesets>
Я собрал слияние. Я хотел бы вернуться, а затем повторить попытку.
Есть ли способ вернуть слияние до того, как оно будет выполнено?
hg revert
не делает то, что я хотел бы, он только возвращает текст файлов. Mercurial прерывает мою вторую попытку слияния и жалуется, что первоначальное слияние все еще не завершено.
Есть ли способ отменить слияние после команды hg merge
, но до ее совершения?
hg update -C <one of the two merge changesets>
После выполнения hg merge
, но перед hg commit
ваша рабочая копия имеет два родителя: первый родитель - это обновленный вами набор изменений до слияния, а второй родитель - это набор изменений, с которым вы сливаетесь. Mercurial не позволит вам делать hg merge
снова, пока ваша рабочая копия состоит из двух родителей.
У вас есть два варианта продолжения:
Если вы хотите прервать слияние и вернуться туда, где вы начали, выполните
hg update -C .
Это обновит рабочую копию в соответствии с первым родителем: .
всегда обозначает первого родителя рабочей копии.
Если вы хотите повторно объединить некоторые файлы, выполните
hg resolve fileA fileB
Это приведет к повторному запуску инструментов слияния, как если бы вы выполнили hg merge
. Команда разрешения хороша, если вы обнаружите в hg merge
-time, что ваши инструменты слияния настроены плохо: исправьте конфигурацию и запустите hg resolve --all
. Вы можете запускать hg resolve
столько раз, сколько хотите, пока не будете удовлетворены слиянием.