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 ''' |