From patchwork Fri Apr 3 15:04:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D8356: rebase: don't create merge when continuing rebase interrupted by old hg From: phabricator X-Patchwork-Id: 46015 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Fri, 3 Apr 2020 15:04:40 +0000 Closed by commit rHGe7af56a0733e: rebase: don'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 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