tests: demonstrate aborted rebase strips commits that didn't need rebasing
I haven't verified, but this has probably been broken ever since I
added the feature in
78496ac30025 (rebase: allow rebase even if some
revisions need no rebase (BC) (
issue5422), 2017-05-11).
Differential Revision: https://phab.mercurial-scm.org/D2877
--- a/tests/test-rebase-partial.t Mon Mar 12 13:15:00 2018 -0700
+++ b/tests/test-rebase-partial.t Thu Mar 15 21:51:33 2018 -0700
@@ -69,6 +69,36 @@
|/
o 0: 426bada5c675 A
+Abort doesn't lose the commits that were already in the right place
+
+ $ hg init abort
+ $ cd abort
+ $ 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
+BROKEN: C got stripped
+ $ hg tglog
+ o 2: ef8c0fe0897b D
+ |
+ | o 1: 594087dbaf71 B
+ |/
+ o 0: 426bada5c675 A
+
+ $ cd ..
+
Rebase with "holes". The commits after the hole should end up on the parent of
the hole (B below), not on top of the destination (A).