[PATCH 08 of 23 v2] rebase: move collapsef and collapsemsg local variables to the class

Kostia Balytskyi ikostia at fb.com
Tue May 31 19:23:28 EDT 2016


# HG changeset patch
# User Kostia Balytskyi <ikostia at fb.com>
# Date 1464602246 -3600
#      Mon May 30 10:57:26 2016 +0100
# Node ID b068d25c46ba2c0e555f29549ae6ba0808132148
# Parent  02f4b29d482f66d1eee5dc6593f9f2ba594d1ac1
rebase: move collapsef and collapsemsg local variables to the class

diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -149,6 +149,8 @@
         self.destspace = opts.get('_destspace')
         self.contf = opts.get('continue')
         self.abortf = opts.get('abort')
+        self.collapsef = opts.get('collapse', False)
+        self.collapsemsg = cmdutil.logmessage(ui, opts)
 
 @command('rebase',
     [('s', 'source', '',
@@ -267,8 +269,6 @@
         wlock = repo.wlock()
         lock = repo.lock()
 
-        collapsef = opts.get('collapse', False)
-        collapsemsg = cmdutil.logmessage(ui, opts)
         date = opts.get('date', None)
         e = opts.get('extrafn') # internal, used by e.g. hgsubversion
         extrafns = [_savegraft]
@@ -291,14 +291,14 @@
                     "'histedit' extension (see \"%s\")") % help
             raise error.Abort(msg)
 
-        if collapsemsg and not collapsef:
+        if rtstate.collapsemsg and not rtstate.collapsef:
             raise error.Abort(
                 _('message can only be specified with collapse'))
 
         if rtstate.contf or rtstate.abortf:
             if rtstate.contf and rtstate.abortf:
                 raise error.Abort(_('cannot use both abort and continue'))
-            if collapsef:
+            if rtstate.collapsef:
                 raise error.Abort(
                     _('cannot use collapse with continue or abort'))
             if rtstate.srcf or rtstate.basef or rtstate.destf:
@@ -309,9 +309,9 @@
 
             try:
                 (rtstate.originalwd, rtstate.target, rtstate.state,
-                 rtstate.skipped, collapsef, keepf, keepbranchesf,
+                 rtstate.skipped, rtstate.collapsef, keepf, keepbranchesf,
                  rtstate.external, rtstate.activebookmark) = restorestatus(repo)
-                collapsemsg = restorecollapsemsg(repo)
+                rtstate.collapsemsg = restorecollapsemsg(repo)
             except error.RepoLookupError:
                 if rtstate.abortf:
                     clearstatus(repo)
@@ -368,7 +368,7 @@
                                               rebasesetrevs,
                                               rebaseobsskipped)
 
-            result = buildstate(repo, dest, rebaseset, collapsef,
+            result = buildstate(repo, dest, rebaseset, rtstate.collapsef,
                                 obsoletenotrebased)
 
             if not result:
@@ -383,7 +383,7 @@
                                  hint=_('see "hg help phases" for details'))
 
             (rtstate.originalwd, rtstate.target, rtstate.state) = result
-            if collapsef:
+            if rtstate.collapsef:
                 rtstate.targetancestors = repo.changelog.ancestors(
                                             [rtstate.target],
                                             inclusive=True)
@@ -398,7 +398,7 @@
             # there's a user-provided extrafn it can clobber branch if
             # desired
             extrafns.insert(0, _savebranch)
-            if collapsef:
+            if rtstate.collapsef:
                 branches = set()
                 for rev in rtstate.state:
                     branches.add(repo[rev].branch())
@@ -439,9 +439,10 @@
                                              rtstate.targetancestors,
                                              obsoletenotrebased)
                 storestatus(repo, rtstate.originalwd, rtstate.target,
-                            rtstate.state, collapsef, keepf, keepbranchesf,
-                            rtstate.external, rtstate.activebookmark)
-                storecollapsemsg(repo, collapsemsg)
+                            rtstate.state, rtstate.collapsef, keepf,
+                            keepbranchesf, rtstate.external,
+                            rtstate.activebookmark)
+                storecollapsemsg(repo, rtstate.collapsemsg)
                 if len(repo[None].parents()) == 2:
                     repo.ui.debug('resuming interrupted rebase\n')
                 else:
@@ -449,14 +450,14 @@
                         ui.setconfig('ui', 'forcemerge', opts.get('tool', ''),
                                      'rebase')
                         stats = rebasenode(repo, rev, p1, base, rtstate.state,
-                                           collapsef, rtstate.target)
+                                           rtstate.collapsef, rtstate.target)
                         if stats and stats[3] > 0:
                             raise error.InterventionRequired(
                                 _('unresolved conflicts (see hg '
                                   'resolve, then hg rebase --continue)'))
                     finally:
                         ui.setconfig('ui', 'forcemerge', '', 'rebase')
-                if not collapsef:
+                if not rtstate.collapsef:
                     merging = p2 != nullrev
                     editform = cmdutil.mergeeditform(merging, 'rebase')
                     editor = cmdutil.getcommiteditor(editform=editform, **opts)
@@ -475,7 +476,7 @@
                     rtstate.state[rev] = repo[newnode].rev()
                     ui.debug('rebased as %s\n' % short(newnode))
                 else:
-                    if not collapsef:
+                    if not rtstate.collapsef:
                         ui.warn(_('note: rebase of %d:%s created no changes '
                                   'to commit\n') % (rev, ctx))
                         rtstate.skipped.add(rev)
@@ -501,15 +502,15 @@
         ui.progress(_('rebasing'), None)
         ui.note(_('rebase merging completed\n'))
 
-        if collapsef and not keepopen:
+        if rtstate.collapsef and not keepopen:
             p1, p2, _base = defineparents(repo, min(rtstate.state),
                                           rtstate.target, rtstate.state,
                                           rtstate.targetancestors,
                                           obsoletenotrebased)
             editopt = opts.get('edit')
             editform = 'rebase.collapse'
-            if collapsemsg:
-                commitmsg = collapsemsg
+            if rtstate.collapsemsg:
+                commitmsg = rtstate.collapsemsg
             else:
                 commitmsg = 'Collapsed revision'
                 for rebased in rtstate.state:
@@ -556,7 +557,7 @@
 
         if not keepf:
             collapsedas = None
-            if collapsef:
+            if rtstate.collapsef:
                 collapsedas = newnode
             clearrebased(ui, repo, rtstate.state, rtstate.skipped, collapsedas)
 


More information about the Mercurial-devel mailing list