2012-12-07 10 views

risposta

29

data la storia di changeset:

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

hg revert -r B: Soggiorno a revisione attuale, ma aggiornare la directory di lavoro a partire dalla revisione B. Ha l'effetto di una patch che revoca le modifiche di C, D e E.

hg backout -r C: Aggiornare la directory di lavoro in modo che contenga il fusione di revisione di C genitore (B) e la revisione attuale, conservando le modifiche fatta tra le due revisioni (dir lavoro contiene ancora cambiamenti di revisione D e E). Ciò ha l'effetto di una patch applicata su E, che annulla le modifiche di solo C.

È possibile modificare alcuni file se non tutto il C non è valido. Ricordatevi di fare un hg commit in ogni caso:

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

Rispondendo alla mia domanda proprio come io non ho trovato nulla chiaro su web. Speriamo che questo aiuti gli altri ora a risparmiare un po 'di tempo. – Iodnas

+0

Bella risposta! Il mio "[cheat sheet] (http://stackoverflow.com/a/2565996/110204)" spiega la differenza tra "hg update" e "hg revert", che potrebbero essere d'aiuto. –

+1

Perché non hai accettato la tua risposta? – PhoneixS