2012-12-07 14 views

Antwort

29

die Geschichte der Changesets Gegeben:

A --- B --- C --- D --- E 
      [bad]  (*) 

hg revert -r B: bei aktuellen Revision bleiben, aber das Arbeitsverzeichnis ab Revision B aktualisieren. Es hat die Wirkung eines Patches, der die Änderungen von C, und E widerruft.

hg backout -r C: Aktualisieren Sie das Arbeitsverzeichnis, so dass es die enthält merge der Revision C des Mutter (B) und der aktuellen Version, um die Änderungen zu bewahren gemacht zwischen den beiden Revisionen (Arbeitsverzeichnis enthält noch Änderungen von Revision und E). Dies hat die Wirkung eines Patches, der auf E, angewendet wird und die Änderungen von nur C rückgängig macht.

Möglicherweise möchten Sie einige Dateien bearbeiten, wenn nicht alle C schlecht war. Denken Sie daran, ein hg commit in jedem Fall zu tun:

A --- B --- C --- D --- E --- F 
      [bad]    (*) 
+4

meine eigene Frage zu beantworten, da ich nicht alles klar auf Web finden konnte. Hoffentlich hilft das jetzt anderen, etwas Zeit zu sparen. – Iodnas

+0

Schöne Antwort! Mein "[cheat sheet] (http://stackoverflow.com/a/2565996/110204)" erklärt den Unterschied zwischen 'hg update' und' hg revert', was ebenfalls hilfreich sein könnte. –

+1

Warum hast du deine Antwort nicht akzeptiert? – PhoneixS