push: move local phase move in a normal function
We now have the modularity for simpler approach `localphasemove`.
--- 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')