[PATCH 6 of 7 v5] rebase: move local variables 'contf', 'abortf' and 'destspace' to the RRS

Kostia Balytskyi ikostia at fb.com
Mon Jun 13 17:28:04 EDT 2016


# HG changeset patch
# User Kostia Balytskyi <ikostia at fb.com>
# Date 1465837356 -3600
#      Mon Jun 13 18:02:36 2016 +0100
# Node ID 66b30edd7be479b423ff51de2fe1db759cdf776d
# Parent  0d2ccd17e15d04bc6cb6dbab1ea3912c9a33fd3d
rebase: move local variables 'contf', 'abortf' and 'destspace' to the RRS

The variables this commit touches are command line options of the rebase
operation. Two of them ('contf' and 'abortf') are responsible for 'abort'
and 'continue' phases of rebase lifecycle, while 'destspace' is used to
search for default rebase destination. Commit moves these variables to
the previously introduced RebaseRuntimeState class.

diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -139,6 +139,12 @@ class rebaseruntime(object):
         self.basef = opts.get('base', None)
         self.revf = opts.get('rev', [])
 
+        # search default destination in this space
+        # used in the 'hg pull --rebase' case, see issue 5214.
+        self.destspace = opts.get('_destspace')
+        self.contf = opts.get('continue')
+        self.abortf = opts.get('abort')
+
 @command('rebase',
     [('s', 'source', '',
      _('rebase the specified changeset and descendants'), _('REV')),
@@ -256,11 +262,6 @@ def rebase(ui, repo, **opts):
         wlock = repo.wlock()
         lock = repo.lock()
 
-        # search default destination in this space
-        # used in the 'hg pull --rebase' case, see issue 5214.
-        destspace = opts.get('_destspace')
-        contf = opts.get('continue')
-        abortf = opts.get('abort')
         collapsef = opts.get('collapse', False)
         collapsemsg = cmdutil.logmessage(ui, opts)
         date = opts.get('date', None)
@@ -289,8 +290,8 @@ def rebase(ui, repo, **opts):
             raise error.Abort(
                 _('message can only be specified with collapse'))
 
-        if contf or abortf:
-            if contf and abortf:
+        if rbsrt.contf or rbsrt.abortf:
+            if rbsrt.contf and rbsrt.abortf:
                 raise error.Abort(_('cannot use both abort and continue'))
             if collapsef:
                 raise error.Abort(
@@ -298,7 +299,7 @@ def rebase(ui, repo, **opts):
             if rbsrt.srcf or rbsrt.basef or rbsrt.destf:
                 raise error.Abort(
                     _('abort and continue do not allow specifying revisions'))
-            if abortf and opts.get('tool', False):
+            if rbsrt.abortf and opts.get('tool', False):
                 ui.warn(_('tool option will be ignored\n'))
 
             try:
@@ -307,7 +308,7 @@ def rebase(ui, repo, **opts):
                  rbsrt.external, rbsrt.activebookmark) = restorestatus(repo)
                 collapsemsg = restorecollapsemsg(repo)
             except error.RepoLookupError:
-                if abortf:
+                if rbsrt.abortf:
                     clearstatus(repo)
                     clearcollapsemsg(repo)
                     repo.ui.warn(_('rebase aborted (no revision is removed,'
@@ -317,7 +318,7 @@ def rebase(ui, repo, **opts):
                     msg = _('cannot continue inconsistent rebase')
                     hint = _('use "hg rebase --abort" to clear broken state')
                     raise error.Abort(msg, hint=hint)
-            if abortf:
+            if rbsrt.abortf:
                 return abort(repo, rbsrt.originalwd, rbsrt.target, 
                              rbsrt.state,
                              activebookmark=rbsrt.activebookmark)
@@ -336,7 +337,7 @@ def rebase(ui, repo, **opts):
         else:
             dest, rebaseset = _definesets(ui, repo, rbsrt.destf, rbsrt.srcf,
                                           rbsrt.basef, rbsrt.revf,
-                                          destspace=destspace)
+                                          destspace=rbsrt.destspace)
             if dest is None:
                 return _nothingtorebase()
 


More information about the Mercurial-devel mailing list