Read about our upcoming Code of Conduct on this issue

This instance will be upgraded to Heptapod 0.28.1 on 2022-01-26 at 16:00 UTC+1 (a few minutes of down time)

Commit 66da5b16 authored by Martin von Zweigbergk's avatar Martin von Zweigbergk
Browse files

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

This fixes the bug described and demonstrated in the previous
commit. It does so by practically undoing 8082a77cc3a2 (rebase: remove
some redundant setting of dirstate parents, 2020-01-10).

Differential Revision: https://phab.mercurial-scm.org/D8356
parent e89b3603d3da
......@@ -631,6 +631,12 @@ class rebaseruntime(object):
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
......
......@@ -327,21 +327,16 @@ two dirstate parents. We should not get a merge commit when we continue.
$ 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 ..
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment