diff --git a/remotefilelog/__init__.py b/remotefilelog/__init__.py --- a/remotefilelog/__init__.py +++ b/remotefilelog/__init__.py @@ -209,8 +209,17 @@ wrapfunction(streamclone, 'maybeperformlegacystreamclone', stream_wrap) - def canperformstreamclone(orig, *args, **kwargs): - supported, requirements = orig(*args, **kwargs) + def canperformstreamclone(orig, pullop, bundle2=False): + # remotefilelog is currently incompatible with the + # bundle2 flavor of streamclones, so force us to use + # v1 instead. + if 'v2' in pullop.remotebundle2caps.get('stream', []): + pullop.remotebundle2caps['stream'] = [ + c for c in pullop.remotebundle2caps['stream'] + if c != 'v2'] + if bundle2: + return False, None + supported, requirements = orig(pullop, bundle2=bundle2) if requirements is not None: requirements.add(shallowrepo.requirement) return supported, requirements