Patchwork D2879: rebase: on abort, don't strip commits that didn't need rebased (issue5822)

login
register
mail settings
Submitter phabricator
Date March 19, 2018, 2:15 p.m.
Message ID <b4f4f808943bf8280a3e0138f6d9edfb@localhost.localdomain>
Download mbox | patch
Permalink /patch/29631/
State Not Applicable
Headers show

Comments

phabricator - March 19, 2018, 2:15 p.m.
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG177f3b90335f: rebase: on abort, don&#039;t strip commits that didn&#039;t need rebased (issue5822) (authored by martinvonz, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D2879?vs=7076&id=7117

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

AFFECTED FILES
  hgext/rebase.py
  tests/test-rebase-partial.t

CHANGE DETAILS




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
@@ -87,13 +87,13 @@ 
   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  3: 79f6d6ab7b14 C
   |
-  | o  1: 594087dbaf71 B
+  | o  2: ef8c0fe0897b D
+  | |
+  o |  1: 594087dbaf71 B
   |/
   o  0: 426bada5c675 A
   
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -1544,7 +1544,8 @@ 
         # If the first commits in the rebased set get skipped during the rebase,
         # their values within the state mapping will be the dest rev id. The
         # rebased list must must not contain the dest rev (issue4896)
-        rebased = [s for r, s in state.items() if s >= 0 and s != destmap[r]]
+        rebased = [s for r, s in state.items()
+                   if s >= 0 and s != r and s != destmap[r]]
         immutable = [d for d in rebased if not repo[d].mutable()]
         cleanup = True
         if immutable: