mercurial/streamclone.py
changeset 35757 bbf7abd09ff0
parent 35756 cfdccd560b66
child 35765 56c30b31afbe
--- 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):