D6957: rebase: unconditionally clear merge state when `--stop`ing a rebase

durin42 (Augie Fackler) phabricator at mercurial-scm.org
Fri Oct 4 01:40:11 UTC 2019


durin42 created this revision.
Herald added a reviewer: martinvonz.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  I am NOT sure of the correctness of this change, but I've hit a point
  on a work repository where the needupdate function returns false and
  so the merge state never gets correctly cleared. As far as I can tell
  when we're *always* in a merge state at this point, so we should
  *always* clear the merge state.
  
  I'm not sure how to structure the test at the moment, but if others
  agree that this looks plausible I'll try and figure out what state my
  work repository is in to craft a test case that can be used to prevent
  any backsliding on this fix.

REPOSITORY
  rHG Mercurial

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

AFFECTED FILES
  hgext/rebase.py

CHANGE DETAILS

diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -909,10 +909,9 @@
                     hint=_('either enable obsmarkers to allow unstable '
                            'revisions or use --keep to keep original '
                            'changesets'))
-            if needupdate(repo, rbsrt.state):
-                # update to the current working revision
-                # to clear interrupted merge
-                hg.updaterepo(repo, rbsrt.originalwd, overwrite=True)
+            # update to the current working revision
+            # to clear interrupted merge
+            hg.updaterepo(repo, rbsrt.originalwd, overwrite=True)
             rbsrt._finishrebase()
             return 0
     elif inmemory:



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


More information about the Mercurial-devel mailing list