diff hgext/rebase.py @ 44095:e733c59f3c09

rebase: fix bug where `--collapse` would apply diff on missing file Even though the file was missing, the rebase would succeed. Differential Revision: https://phab.mercurial-scm.org/D7897
author Martin von Zweigbergk <martinvonz@google.com>
date Mon, 13 Jan 2020 11:18:29 -0800
parents 521b4e3a42d7
children 4263aaab651d
line wrap: on
line diff
--- a/hgext/rebase.py	Mon Jan 13 11:11:20 2020 -0800
+++ b/hgext/rebase.py	Mon Jan 13 11:18:29 2020 -0800
@@ -1486,15 +1486,16 @@
     repo.ui.debug(b" merge against %d:%s\n" % (rev, ctx))
     if base is not None:
         repo.ui.debug(b"   detach base %d:%s\n" % (base, repo[base]))
-    # When collapsing in-place, the parent is the common ancestor, we
-    # have to allow merging with it.
+
+    # See explanation in merge.graft()
+    mergeancestor = repo.changelog.isancestor(p1ctx.node(), ctx.node())
     stats = mergemod.update(
         repo,
         rev,
         branchmerge=True,
         force=True,
         ancestor=base,
-        mergeancestor=collapse,
+        mergeancestor=mergeancestor,
         labels=[b'dest', b'source'],
         wc=wctx,
     )