D3849: rebase: refactor dryrun implementation

khanchi97 (Sushil khanchi) phabricator at mercurial-scm.org
Wed Jun 27 10:26:02 EDT 2018


khanchi97 updated this revision to Diff 9324.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D3849?vs=9321&id=9324

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

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
@@ -818,19 +818,23 @@
         opts[r'dest'] = '_destautoorphanrebase(SRC)'
 
     if dryrun:
+        leaveunfinished = True
+        inmemory = True
+        rbsrt = rebaseruntime(repo, ui, inmemory, opts)
         try:
             overrides = {('rebase', 'singletransaction'): True}
             with ui.configoverride(overrides, 'rebase'):
-                _origrebase(ui, repo, inmemory=True, leaveunfinished=True,
-                            **opts)
+                _origrebase(ui, repo, inmemory=True, rbsrt=rbsrt,
+                            leaveunfinished=leaveunfinished, **opts)
         except error.InMemoryMergeConflictsError:
             ui.status(_('hit a merge conflict\n'))
             return 1
         else:
             ui.status(_('there will be no conflict, you can rebase\n'))
             return 0
         finally:
-            _origrebase(ui, repo, abort=True)
+            with repo.wlock(), repo.lock():
+                rbsrt._prepareabortorcontinue(isabort=True)
     elif inmemory:
         try:
             # in-memory merge doesn't support conflicts, so if we hit any, abort
@@ -846,9 +850,11 @@
     else:
         return _origrebase(ui, repo, **opts)
 
-def _origrebase(ui, repo, inmemory=False, leaveunfinished=False, **opts):
+def _origrebase(ui, repo, inmemory=False, leaveunfinished=False, rbsrt=None,
+                **opts):
     opts = pycompat.byteskwargs(opts)
-    rbsrt = rebaseruntime(repo, ui, inmemory, opts)
+    if not rbsrt:
+        rbsrt = rebaseruntime(repo, ui, inmemory, opts)
 
     with repo.wlock(), repo.lock():
         # Validate input and define rebasing points



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


More information about the Mercurial-devel mailing list