Як перервати злиття в ртутному?


85

Я зіпсував злиття. Я хотів би скасувати дію, а потім спробувати ще раз.
Чи є спосіб скасувати злиття до того, як воно буде здійснено?

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

Чи є спосіб скасувати злиття після hg mergeкоманди, але до її здійснення?


Відповіді:


106

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


Простий, ефективний і, я думаю, найкращий спосіб це зробити! : D
Ерік-Карл,

@JonL. - Так, --cleanце синонім -C. Я не впевнений, до якого набору змін .посилатимуться, але він завжди буде одним із двох об’єднаних наборів змін.
Всезначний

3
@Onnifarious, прибирання .має очистити будь-яку редакцію, яку ви проводили до початку об’єднання. Отже, якщо ви знаходитесь на r42, намагаєтеся об’єднатись з r43, не вдаєтесь, очищаєте, ви повернетесь на первозданну r42.
Джон Л.

2
hg update --cleanпрацює, як .видається неявним за замовчуванням - це явно не задокументовано .
Джоел Пурра,

@JoelPurra: Значення .в контексті злиття досить неоднозначне.
Всезначний

39

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

У вас є два варіанти, як діяти далі:

  1. Якщо ви хочете перервати злиття та повернутися до того, з чого почали, тоді зробіть

    hg update -C .
    

    Це оновить робочу копію, щоб вона відповідала першому батькові: .завжди позначає першого батьківського елемента робочої копії.

  2. Якщо ви хочете повторно об’єднати деякі файли, зробіть це

    hg resolve fileA fileB
    

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.