2010-10-20 9 views
68

Ich vermasselte eine Zusammenführung. Ich möchte zurückkehren und es erneut versuchen.
Gibt es eine Möglichkeit, eine Zusammenführung wiederherzustellen, bevor sie festgeschrieben wird?Wie man eine merge in mercurial abbricht?

hg revert nicht tun, was ich möchte, es stellt nur den Text der Dateien. Mercurial bricht meinen zweiten Verbindungsversuch ab und beschwert sich, dass die ursprüngliche Zusammenführung noch nicht festgeschrieben wurde.

Gibt es eine Möglichkeit, eine Zusammenführung nach einem hg merge Befehl rückgängig zu machen, aber bevor es festgeschrieben wird?

+0

Mögliches Duplikat von [Wie ein hg merge verlassen?] (Http://stackoverflow.com/questions/2570087/how-to-abandon-a-hg-merge) – Rodrigue

Antwort

86

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

+0

Einfach, effizient und ich denke, der beste Weg, es zu tun! : D –

+37

Ein anderer Weg ist einfach 'hg update --clean .' –

+1

nicht mit -c (Kleinbuchstaben) zu verwechseln! – SystemParadox

35

Nachdem Sie das tun hg merge, aber vor hg commit, hat der Arbeitskopie zwei Eltern: der erste Elternteil die changeset ist Sie aktualisiert hatte, bevor die Zusammenführung und der zweite Elternteil ist die changeset Sie verschmelzen. Mercurial lässt Sie nicht wieder hg merge tun, solange Ihre Arbeitskopie zwei Elternteile hat.

Sie haben zwei Möglichkeiten, wie es weitergeht:

  1. Wenn Sie die Zusammenführung abbrechen wollen und sich wieder auf, wo Sie begonnen, dann tun

    hg update -C . 
    

    Dadurch wird die Arbeitskopie aktualisieren Um den ersten Elternteil zu finden: Der . bezeichnet immer den ersten Elternteil der Arbeitskopie.

  2. Wenn Sie wollen wieder fusionieren einige Dateien dann tun

    hg resolve fileA fileB 
    

    Dies wird die Merge-Tools wieder in Gang bringen genauso wie wenn Sie hg merge tat. Der Befehl resolve ist gut, wenn Sie unter hg merge-Zeit finden, dass Ihre Merge-Tools schlecht konfiguriert sind: beheben Sie die Konfiguration und führen Sie hg resolve --all. Sie können hg resolve so oft ausführen, wie Sie möchten, bis Sie mit der Zusammenführung zufrieden sind.