219 # edition ar "in place" we do not need to make any merge, |
219 # edition ar "in place" we do not need to make any merge, |
220 # just applies changes on parent for edition |
220 # just applies changes on parent for edition |
221 cmdutil.revert(ui, repo, ctx, (wcpar, node.nullid), all=True) |
221 cmdutil.revert(ui, repo, ctx, (wcpar, node.nullid), all=True) |
222 stats = None |
222 stats = None |
223 else: |
223 else: |
|
224 repo.dirstate.beginparentchange() |
224 try: |
225 try: |
225 # ui.forcemerge is an internal variable, do not document |
226 # ui.forcemerge is an internal variable, do not document |
226 repo.ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), |
227 repo.ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), |
227 'histedit') |
228 'histedit') |
228 stats = mergemod.update(repo, ctx.node(), True, True, False, |
229 stats = mergemod.update(repo, ctx.node(), True, True, False, |
229 ctx.p1().node()) |
230 ctx.p1().node()) |
230 finally: |
231 finally: |
231 repo.ui.setconfig('ui', 'forcemerge', '', 'histedit') |
232 repo.ui.setconfig('ui', 'forcemerge', '', 'histedit') |
232 repo.setparents(wcpar, node.nullid) |
233 repo.setparents(wcpar, node.nullid) |
|
234 repo.dirstate.endparentchange() |
233 repo.dirstate.write() |
235 repo.dirstate.write() |
234 # fix up dirstate for copies and renames |
236 # fix up dirstate for copies and renames |
235 cmdutil.duplicatecopies(repo, ctx.rev(), ctx.p1().rev()) |
237 cmdutil.duplicatecopies(repo, ctx.rev(), ctx.p1().rev()) |
236 return stats |
238 return stats |
237 |
239 |