pull: move phases synchronisation in its own function
Now that every necessary information is held in the `pulloperation` object, we
can finally extract the phase synchronisation phase to it's own function.
This changeset is pure code movement only.
--- a/mercurial/exchange.py Fri Jan 31 01:21:42 2014 -0800
+++ b/mercurial/exchange.py Fri Jan 31 01:25:56 2014 -0800
@@ -473,23 +473,7 @@
subset = pullop.heads
pullop.pulledsubset = subset
- # Get remote phases data from remote
- remotephases = pullop.remote.listkeys('phases')
- publishing = bool(remotephases.get('publishing', False))
- if remotephases and not publishing:
- # remote is new and unpublishing
- pheads, _dr = phases.analyzeremotephases(pullop.repo,
- pullop.pulledsubset,
- remotephases)
- phases.advanceboundary(pullop.repo, phases.public, pheads)
- phases.advanceboundary(pullop.repo, phases.draft,
- pullop.pulledsubset)
- else:
- # Remote is old or publishing all common changesets
- # should be seen as public
- phases.advanceboundary(pullop.repo, phases.public,
- pullop.pulledsubset)
-
+ _pullphase(pullop)
_pullobsolete(pullop)
pullop.closetransaction()
finally:
@@ -498,6 +482,24 @@
return result
+def _pullphase(pullop):
+ # Get remote phases data from remote
+ remotephases = pullop.remote.listkeys('phases')
+ publishing = bool(remotephases.get('publishing', False))
+ if remotephases and not publishing:
+ # remote is new and unpublishing
+ pheads, _dr = phases.analyzeremotephases(pullop.repo,
+ pullop.pulledsubset,
+ remotephases)
+ phases.advanceboundary(pullop.repo, phases.public, pheads)
+ phases.advanceboundary(pullop.repo, phases.draft,
+ pullop.pulledsubset)
+ else:
+ # Remote is old or publishing all common changesets
+ # should be seen as public
+ phases.advanceboundary(pullop.repo, phases.public,
+ pullop.pulledsubset)
+
def _pullobsolete(pullop):
"""utility function to pull obsolete markers from a remote