mercurial/commands.py
changeset 45544 2b339c6c6e99
parent 45518 32ce4cbaec4b
child 45556 03726f5b6092
equal deleted inserted replaced
45543:68906595016c 45544:2b339c6c6e99
   788     if date:
   788     if date:
   789         opts[b'date'] = dateutil.parsedate(date)
   789         opts[b'date'] = dateutil.parsedate(date)
   790 
   790 
   791     cmdutil.checkunfinished(repo)
   791     cmdutil.checkunfinished(repo)
   792     cmdutil.bailifchanged(repo)
   792     cmdutil.bailifchanged(repo)
   793     node = scmutil.revsingle(repo, rev).node()
   793     ctx = scmutil.revsingle(repo, rev)
       
   794     node = ctx.node()
   794 
   795 
   795     op1, op2 = repo.dirstate.parents()
   796     op1, op2 = repo.dirstate.parents()
   796     if not repo.changelog.isancestor(node, op1):
   797     if not repo.changelog.isancestor(node, op1):
   797         raise error.Abort(_(b'cannot backout change that is not an ancestor'))
   798         raise error.Abort(_(b'cannot backout change that is not an ancestor'))
   798 
   799 
   819     rctx = scmutil.revsingle(repo, hex(parent))
   820     rctx = scmutil.revsingle(repo, hex(parent))
   820     if not opts.get(b'merge') and op1 != node:
   821     if not opts.get(b'merge') and op1 != node:
   821         with dirstateguard.dirstateguard(repo, b'backout'):
   822         with dirstateguard.dirstateguard(repo, b'backout'):
   822             overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')}
   823             overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')}
   823             with ui.configoverride(overrides, b'backout'):
   824             with ui.configoverride(overrides, b'backout'):
   824                 stats = mergemod.update(
   825                 stats = mergemod.back_out(ctx, parent=repo[parent])
   825                     repo,
       
   826                     parent,
       
   827                     branchmerge=True,
       
   828                     force=True,
       
   829                     ancestor=node,
       
   830                     mergeancestor=False,
       
   831                 )
       
   832             repo.setparents(op1, op2)
   826             repo.setparents(op1, op2)
   833         hg._showstats(repo, stats)
   827         hg._showstats(repo, stats)
   834         if stats.unresolvedcount:
   828         if stats.unresolvedcount:
   835             repo.ui.status(
   829             repo.ui.status(
   836                 _(b"use 'hg resolve' to retry unresolved file merges\n")
   830                 _(b"use 'hg resolve' to retry unresolved file merges\n")