tests: demonstrate aborted rebase strips commits that didn't need rebasing stable
authorMartin von Zweigbergk <martinvonz@google.com>
Thu, 15 Mar 2018 21:51:33 -0700
branchstable
changeset 36979 b9a6ee2066f9
parent 36845 ff2370a70fe8
child 36980 a046d6890761
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
tests/test-rebase-partial.t
--- 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).