--- a/mercurial/merge.py Fri Sep 18 17:19:49 2020 +0530
+++ b/mercurial/merge.py Mon Sep 21 09:56:48 2020 -0700
@@ -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,