diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -132,7 +132,9 @@ def push(repo, remote, force=False, revs pushop.repo.prepushoutgoinghooks(pushop.repo, pushop.remote, pushop.outgoing) - if pushop.remote.capable('bundle2-exp'): + if (pushop.repo.ui.configbool('experimental', 'bundle2-exp', + False) + and pushop.remote.capable('bundle2-exp')): _pushbundle2(pushop) else: _pushchangeset(pushop) @@ -516,7 +518,8 @@ def pull(repo, remote, heads=None, force lock = pullop.repo.lock() try: _pulldiscovery(pullop) - if pullop.remote.capable('bundle2-exp'): + if (pullop.repo.ui.configbool('server', 'bundle2', False) + and pullop.remote.capable('bundle2-exp')): _pullbundle2(pullop) if 'changegroup' in pullop.todosteps: _pullchangeset(pullop) diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py --- a/mercurial/wireproto.py +++ b/mercurial/wireproto.py @@ -585,7 +585,7 @@ def _capabilities(repo, proto): # otherwise, add 'streamreqs' detailing our local revlog format else: caps.append('streamreqs=%s' % ','.join(requiredformats)) - if self.ui.configbool('experimental', 'bundle2-exp', False): + if repo.ui.configbool('experimental', 'bundle2-exp', False): capsblob = bundle2.encodecaps(repo.bundle2caps) caps.append('bundle2-exp=' + urllib.quote(capsblob)) caps.append('unbundle=%s' % ','.join(changegroupmod.bundlepriority))