Mercurial > hg-stable
changeset 35757:bbf7abd09ff0
streamclone: rework canperformstreamclone
There is code about bundle2 laying around in `canperformstreamclone` but not
put to any uses. As we discovered with the previous patch, streambundle 'v1'
won't work on bundle2 because they are readline based. So we jump to 'v2' as
the first expected supported version.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Thu, 18 Jan 2018 00:45:27 +0100 |
parents | cfdccd560b66 |
children | b996ddf5963d |
files | mercurial/streamclone.py |
diffstat | 1 files changed, 7 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/streamclone.py Thu Jan 18 00:48:56 2018 +0100 +++ b/mercurial/streamclone.py Thu Jan 18 00:45:27 2018 +0100 @@ -18,12 +18,11 @@ util, ) -def canperformstreamclone(pullop, bailifbundle2supported=False): +def canperformstreamclone(pullop, bundle2=False): """Whether it is possible to perform a streaming clone as part of pull. - ``bailifbundle2supported`` will cause the function to return False if - bundle2 stream clones are supported. It should only be called by the - legacy stream clone code path. + ``bundle2`` will cause the function to consider stream clone through + bundle2 and only through bundle2. Returns a tuple of (supported, requirements). ``supported`` is True if streaming clone is supported and False otherwise. ``requirements`` is @@ -35,18 +34,18 @@ bundle2supported = False if pullop.canusebundle2: - if 'v1' in pullop.remotebundle2caps.get('stream', []): + if 'v2' in pullop.remotebundle2caps.get('stream', []): bundle2supported = True # else # Server doesn't support bundle2 stream clone or doesn't support # the versions we support. Fall back and possibly allow legacy. # Ensures legacy code path uses available bundle2. - if bailifbundle2supported and bundle2supported: + if bundle2supported and not bundle2: return False, None # Ensures bundle2 doesn't try to do a stream clone if it isn't supported. - #elif not bailifbundle2supported and not bundle2supported: - # return False, None + elif bundle2 and not bundle2supported: + return False, None # Streaming clone only works on empty repositories. if len(repo):