equal
deleted
inserted
replaced
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") |