mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 08:18:15 +03:00
exchange: move stream clone logic into pull code path
Stream clones are a special case of clones. Clones are a special case of pull. Most of the logic for deciding what to do at pull time is in exchange.py. It makes sense for the stream clone determination to live there as well. This patch moves the calling of the stream clone code into pull(). The checks in streamclone.canperformstreamclone() ensure that we don't perform a stream clone unless it is possible. A future patch will convert maybeperformstreamclone() to accept a pullop to make it consistent with everything else in pull(). It will also grow some functionality (in case you doubted the necessity of a 4 line function).
This commit is contained in:
parent
7d658837f3
commit
13e503977f
@ -11,6 +11,7 @@ import errno, urllib
|
||||
import util, scmutil, changegroup, base85, error
|
||||
import discovery, phases, obsolete, bookmarks as bookmod, bundle2, pushkey
|
||||
import lock as lockmod
|
||||
import streamclone
|
||||
import tags
|
||||
|
||||
def readbundle(ui, fh, fname, vfs=None):
|
||||
@ -963,6 +964,9 @@ def pull(repo, remote, heads=None, force=False, bookmarks=(), opargs=None,
|
||||
lock = pullop.repo.lock()
|
||||
try:
|
||||
pullop.trmanager = transactionmanager(repo, 'pull', remote.url())
|
||||
streamclone.maybeperformstreamclone(pullop.repo, pullop.remote,
|
||||
pullop.heads,
|
||||
pullop.streamclonerequested)
|
||||
_pulldiscovery(pullop)
|
||||
if _canusebundle2(pullop):
|
||||
_pullbundle2(pullop)
|
||||
|
@ -19,7 +19,6 @@ from lock import release
|
||||
import weakref, errno, os, time, inspect, random
|
||||
import branchmap, pathutil
|
||||
import namespaces
|
||||
import streamclone
|
||||
propertycache = util.propertycache
|
||||
filecache = scmutil.filecache
|
||||
|
||||
@ -1794,8 +1793,6 @@ class localrepository(object):
|
||||
keyword arguments:
|
||||
heads: list of revs to clone (forces use of pull)
|
||||
stream: use streaming clone if possible'''
|
||||
streamclone.maybeperformstreamclone(self, remote, heads, stream)
|
||||
|
||||
# internal config: ui.quietbookmarkmove
|
||||
quiet = self.ui.backupconfig('ui', 'quietbookmarkmove')
|
||||
try:
|
||||
|
Loading…
Reference in New Issue
Block a user