push: move local phase move in a normal function
authorPierre-Yves David <pierre-yves.david@logilab.fr>
Thu, 30 Jan 2014 20:10:59 -0800
changeset 20438 2b5ab0d11327
parent 20437 9e54faf37ff8
child 20439 0d3ccf285ff2
push: move local phase move in a normal function We now have the modularity for simpler approach `localphasemove`.
mercurial/exchange.py
--- a/mercurial/exchange.py	Thu Jan 30 20:09:21 2014 -0800
+++ b/mercurial/exchange.py	Thu Jan 30 20:10:59 2014 -0800
@@ -66,19 +66,6 @@
     if not pushop.remote.canpush():
         raise util.Abort(_("destination does not support push"))
     unfi = pushop.repo.unfiltered()
-    def localphasemove(pushop, nodes, phase=phases.public):
-        """move <nodes> to <phase> in the local source repo"""
-        if pushop.locallocked:
-            phases.advanceboundary(pushop.repo, phase, nodes)
-        else:
-            # repo is not locked, do not change any phases!
-            # Informs the user that phases should have been moved when
-            # applicable.
-            actualmoves = [n for n in nodes if phase < pushop.repo[n].phase()]
-            phasestr = phases.phasenames[phase]
-            if actualmoves:
-                pushop.ui.status(_('cannot lock source repo, skipping '
-                                   'local %s phase update\n') % phasestr)
     # get local lock as we might write phase data
     locallock = None
     try:
@@ -223,7 +210,7 @@
                 # on the remote.
                 remotephases = {'publishing': 'True'}
             if not remotephases: # old server or public only rer
-                localphasemove(pushop, cheads)
+                _localphasemove(pushop, cheads)
                 # don't push any phase data as there is nothing to push
             else:
                 ana = phases.analyzeremotephases(pushop.repo, cheads,
@@ -231,10 +218,10 @@
                 pheads, droots = ana
                 ### Apply remote phase on local
                 if remotephases.get('publishing', False):
-                    localphasemove(pushop, cheads)
+                    _localphasemove(pushop, cheads)
                 else: # publish = False
-                    localphasemove(pushop, pheads)
-                    localphasemove(pushop, cheads, phases.draft)
+                    _localphasemove(pushop, pheads)
+                    _localphasemove(pushop, cheads, phases.draft)
                 ### Apply local phase on remote
 
                 # Get the list of all revs draft on remote by public here.
@@ -261,6 +248,20 @@
     _pushbookmark(pushop)
     return ret
 
+def _localphasemove(pushop, nodes, phase=phases.public):
+    """move <nodes> to <phase> in the local source repo"""
+    if pushop.locallocked:
+        phases.advanceboundary(pushop.repo, phase, nodes)
+    else:
+        # repo is not locked, do not change any phases!
+        # Informs the user that phases should have been moved when
+        # applicable.
+        actualmoves = [n for n in nodes if phase < pushop.repo[n].phase()]
+        phasestr = phases.phasenames[phase]
+        if actualmoves:
+            pushop.ui.status(_('cannot lock source repo, skipping '
+                               'local %s phase update\n') % phasestr)
+
 def _pushobsolete(pushop):
     """utility function to push obsolete markers to a remote"""
     pushop.ui.debug('try to push obsolete markers to remote\n')