Part of a repro .t file: $ hg debugdrawdag <<EOF > C > | > B D # B/file = B > |/ # D/file = D > A > EOF $ hg rebase -r C+D -d B rebasing 2:ef8c0fe0897b "D" (D) merging file warning: conflicts while merging file! (edit, then use 'hg resolve --mark') unresolved conflicts (see hg resolve, then hg rebase --continue) [1] $ hg rebase --abort saved backup bundle to $TESTTMP/abort/.hg/strip-backup/79f6d6ab7b14-cce2340e-backup.hg rebase aborted Here C gets lost
Fixed by https://mercurial-scm.org/repo/hg/rev/177f3b90335f Martin von Zweigbergk <martinvonz@google.com> rebase: on abort, don't strip commits that didn't need rebased (issue5822) I clearly missed adding this condition in 78496ac30025 (rebase: allow rebase even if some revisions need no rebase (BC) (issue5422), 2017-05-11). Perhaps I should have opted for the "revdone" solution I mentioned there... Differential Revision: https://phab.mercurial-scm.org/D2879 (please test the fix)
Bug was set to TESTING for 7 days, resolving