mercurial/commands.py
branchstable
changeset 13340 02aa06a021a0
parent 13328 a939f08fae9c
child 13343 69e69b131458
equal deleted inserted replaced
13339:22167be007ed 13340:02aa06a021a0
   202                      matchfn, prefix, subrepos=opts.get('subrepos'))
   202                      matchfn, prefix, subrepos=opts.get('subrepos'))
   203 
   203 
   204 def backout(ui, repo, node=None, rev=None, **opts):
   204 def backout(ui, repo, node=None, rev=None, **opts):
   205     '''reverse effect of earlier changeset
   205     '''reverse effect of earlier changeset
   206 
   206 
   207     The backout command merges the reverse effect of the reverted
   207     Prepare a new changeset with the effect of REV undone in the
   208     changeset into the working directory.
   208     current working directory.
   209 
   209 
   210     With the --merge option, it first commits the reverted changes
   210     If REV is the parent of the working directory, then this changeset
   211     as a new changeset. This new changeset is a child of the reverted
   211     is committed automatically. Otherwise, hg needs to merge the
   212     changeset.
   212     changes and the merged result is left uncommitted.
   213     The --merge option remembers the parent of the working directory
   213 
   214     before starting the backout, then merges the new head with that
   214     By default, the pending changeset will have one parent,
   215     changeset afterwards.
   215     maintaining a linear history. With --merge, the pending changeset
   216     This will result in an explicit merge in the history.
   216     will instead have two parents: the old parent of the working
   217 
   217     directory and a child of REV that simply undoes REV.
   218     If you backout a changeset other than the original parent of the
   218 
   219     working directory, the result of this merge is not committed,
   219     Before version 1.7, the default behavior was equivalent to
   220     as with a normal merge. Otherwise, no merge is needed and the
   220     specifying --merge followed by :hg:`update --clean .` to cancel
   221     commit is automatic.
   221     the merge and leave the child of REV as a head to be merged
   222 
   222     separately.
   223     Note that the default behavior (without --merge) has changed in
       
   224     version 1.7. To restore the previous default behavior, use
       
   225     :hg:`backout --merge` and then :hg:`update --clean .` to get rid of
       
   226     the ongoing merge.
       
   227 
   223 
   228     See :hg:`help dates` for a list of formats valid for -d/--date.
   224     See :hg:`help dates` for a list of formats valid for -d/--date.
   229 
   225 
   230     Returns 0 on success.
   226     Returns 0 on success.
   231     '''
   227     '''