Patchwork D8356: rebase: don't create merge when continuing rebase interrupted by old hg

login
register
mail settings
Submitter phabricator
Date April 3, 2020, 3:04 p.m.
Message ID <c64f1bc7d26f4d8fc16cd8b1e70e9c13@localhost.localdomain>
Download mbox | patch
Permalink /patch/46015/
State Not Applicable
Headers show

Comments

phabricator - April 3, 2020, 3:04 p.m.
Closed by commit rHGe7af56a0733e: rebase: don&#039;t create merge when continuing rebase interrupted by old hg (authored by martinvonz).
This revision was automatically updated to reflect the committed changes.
This revision was not accepted when it landed; it landed in state "Needs Review".

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8356?vs=20958&id=20985

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D8356/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D8356

AFFECTED FILES
  hgext/rebase.py
  tests/test-rebase-interruptions.t

CHANGE DETAILS




To: martinvonz, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/tests/test-rebase-interruptions.t b/tests/test-rebase-interruptions.t
--- a/tests/test-rebase-interruptions.t
+++ b/tests/test-rebase-interruptions.t
@@ -327,21 +327,16 @@ 
   $ hg rebase --continue
   already rebased 1:27547f69f254 "B" as 45396c49d53b
   rebasing 2:965c486023db "C"
-  warning: orphaned descendants detected, not stripping 27547f69f254, 965c486023db
-BROKEN: we should not have a merge commit here
+  saved backup bundle to $TESTTMP/a4/.hg/strip-backup/27547f69f254-359abdd7-rebase.hg
   $ hg tglog
-  o    6: 567335b578a0 'C'
-  |\
-  | o  5: 45396c49d53b 'B'
-  | |
-  | @  4: ae36e8e3dfd7 'E'
-  | |
-  | o  3: 46b37eabc604 'D'
-  | |
-  o |  2: 965c486023db 'C'
-  | |
-  o |  1: 27547f69f254 'B'
-  |/
+  o  4: d2d25e26288e 'C'
+  |
+  o  3: 45396c49d53b 'B'
+  |
+  @  2: ae36e8e3dfd7 'E'
+  |
+  o  1: 46b37eabc604 'D'
+  |
   o  0: 4a2df7238c3b 'A'
   
   $ cd ..
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -631,6 +631,12 @@ 
                 editor = cmdutil.getcommiteditor(
                     editform=editform, **pycompat.strkwargs(opts)
                 )
+                # We need to set parents again here just in case we're continuing
+                # a rebase started with an old hg version (before 9c9cfecd4600),
+                # because those old versions would have left us with two dirstate
+                # parents, and we don't want to create a merge commit here (unless
+                # we're rebasing a merge commit).
+                self.wctx.setparents(repo[p1].node(), repo[p2].node())
                 newnode = self._concludenode(rev, p1, editor)
             else:
                 # Skip commit if we are collapsing