diff -r 68906595016c -r 2b339c6c6e99 mercurial/merge.py --- 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,