Both hg revert
and hg backout
revert changes made by a former revision. What is the difference between the two?
Given the history of changesets:
A --- B --- C --- D --- E
[bad] (*)
hg revert -r B
: Stay at current revision, but update the working directory
as of revision B
. It has the effect of a patch that revokes the changes
of C
, D
and E
.
hg backout -r C
: Update the working directory so that it contains the merge
of revision C's parent (B
) and the current revision, preserving the changes
made in between the two revisions (working dir still contains changes of
revision D
and E
). This has the effect of a patch applied on E
,
undoing the changes of only C
.
You may want to edit some files if not all of C
was bad. Remember to do
a hg commit
in any case:
A --- B --- C --- D --- E --- F
[bad] (*)