Как прервать слияние в ртути?

Я собрал слияние. Я хотел бы вернуться, а затем повторить попытку.
Есть ли способ вернуть слияние до того, как оно будет выполнено?

hg revert не делает то, что я хотел бы, он только возвращает текст файлов. Mercurial прерывает мою вторую попытку слияния и жалуется, что первоначальное слияние все еще не завершено.

Есть ли способ отменить слияние после команды hg merge, но до ее совершения?

Ответ 1

hg update -C <one of the two merge changesets>

Ответ 2

После выполнения hg merge, но перед hg commit ваша рабочая копия имеет два родителя: первый родитель - это обновленный вами набор изменений до слияния, а второй родитель - это набор изменений, с которым вы сливаетесь. Mercurial не позволит вам делать hg merge снова, пока ваша рабочая копия состоит из двух родителей.

У вас есть два варианта продолжения:

  • Если вы хотите прервать слияние и вернуться туда, где вы начали, выполните

    hg update -C .
    

    Это обновит рабочую копию в соответствии с первым родителем: . всегда обозначает первого родителя рабочей копии.

  • Если вы хотите повторно объединить некоторые файлы, выполните

    hg resolve fileA fileB
    

    Это приведет к повторному запуску инструментов слияния, как если бы вы выполнили hg merge. Команда разрешения хороша, если вы обнаружите в hg merge -time, что ваши инструменты слияния настроены плохо: исправьте конфигурацию и запустите hg resolve --all. Вы можете запускать hg resolve столько раз, сколько хотите, пока не будете удовлетворены слиянием.