diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -712,8 +712,8 @@ def defineparents(repo, rev, target, sta repo.ui.debug(" future parents are %d and %d\n" % (repo[p1].rev(), repo[p2].rev())) - if rev == min(state): - # Case (1) initial changeset of a non-detaching rebase. + if not any(p.rev() in state for p in parents): + # Case (1) root changeset of a non-detaching rebase set. # Let the merge mechanism find the base itself. base = None elif not repo[rev].p2(): diff --git a/tests/test-rebase-parameters.t b/tests/test-rebase-parameters.t --- a/tests/test-rebase-parameters.t +++ b/tests/test-rebase-parameters.t @@ -412,6 +412,16 @@ Specify only revs (from 2 onto 8) $ cd .. +Rebasing both a single revision and a merge in one command + + $ hg clone -q -u . a aX + $ cd aX + $ hg rebase -r 3 -r 6 + rebasing 3:32af7686d403 "D" + rebasing 6:eea13746799a "G" + saved backup bundle to $TESTTMP/aX/.hg/strip-backup/eea13746799a-ad273fd6-backup.hg (glob) + $ cd .. + Test --tool parameter: $ hg init b