[Updated] D9064: merge: add a back_out() function to encapsulate update()
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Thu Sep 24 07:36:12 UTC 2020
Closed by commit rHG2b339c6c6e99: merge: add a back_out() function to encapsulate update() (authored by martinvonz).
This revision was automatically updated to reflect the committed changes.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D9064?vs=22805&id=22818
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D9064/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D9064
AFFECTED FILES
mercurial/commands.py
mercurial/merge.py
CHANGE DETAILS
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -2159,6 +2159,23 @@
return stats
+def back_out(ctx, parent=None, wc=None):
+ if parent is None:
+ if ctx.p2() is not None:
+ raise error.ProgrammingError(
+ b"must specify parent of merge commit to back out"
+ )
+ parent = ctx.p1()
+ return update(
+ ctx.repo(),
+ parent,
+ branchmerge=True,
+ force=True,
+ ancestor=ctx.node(),
+ mergeancestor=False,
+ )
+
+
def purge(
repo,
matcher,
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -790,7 +790,8 @@
cmdutil.checkunfinished(repo)
cmdutil.bailifchanged(repo)
- node = scmutil.revsingle(repo, rev).node()
+ ctx = scmutil.revsingle(repo, rev)
+ node = ctx.node()
op1, op2 = repo.dirstate.parents()
if not repo.changelog.isancestor(node, op1):
@@ -821,14 +822,7 @@
with dirstateguard.dirstateguard(repo, b'backout'):
overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')}
with ui.configoverride(overrides, b'backout'):
- stats = mergemod.update(
- repo,
- parent,
- branchmerge=True,
- force=True,
- ancestor=node,
- mergeancestor=False,
- )
+ stats = mergemod.back_out(ctx, parent=repo[parent])
repo.setparents(op1, op2)
hg._showstats(repo, stats)
if stats.unresolvedcount:
To: martinvonz, #hg-reviewers, pulkit
Cc: mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20200924/3b912c64/attachment-0002.html>
More information about the Mercurial-patches
mailing list