Patchwork D2877: tests: demonstrate aborted rebase strips commits that didn't need rebasing

login
register
mail settings
Submitter phabricator
Date March 16, 2018, 5:36 a.m.
Message ID <differential-rev-PHID-DREV-bgwnxzzmo6uqehqydy2a-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/29552/
State Superseded
Headers show

Comments

phabricator - March 16, 2018, 5:36 a.m.
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  I haven't verified, but this has probably been broken ever since I
  added the feature in https://phab.mercurial-scm.org/rHG78496ac300255e9996b3e282086661afc08af37c (rebase: allow rebase even if some
  revisions need no rebase (BC) (issue5422), 2017-05-11).

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D2877

AFFECTED FILES
  tests/test-rebase-partial.t

CHANGE DETAILS




To: martinvonz, #hg-reviewers
Cc: mercurial-devel
phabricator - March 16, 2018, 5:40 a.m.
martinvonz added a comment.


  I'm not sure if you can tell in the Phabricator UI, but this series is meant for stable.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D2877

To: martinvonz, #hg-reviewers
Cc: mercurial-devel
phabricator - March 19, 2018, 2:09 p.m.
yuja added a comment.


  Queued for stable, thanks.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D2877

To: martinvonz, #hg-reviewers, yuja
Cc: mercurial-devel

Patch

diff --git a/tests/test-rebase-partial.t b/tests/test-rebase-partial.t
--- a/tests/test-rebase-partial.t
+++ b/tests/test-rebase-partial.t
@@ -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).