# HG changeset patch # User Gregory Szorc # Date 1516652475 28800 # Node ID c1b9eb15a51c7b1b7ff8334bd47863537e8dccd9 # Parent 8ed5f7609728f09195ffa580efbc4b5c98444ccf bundle2: don't advertise stream bundle2 capability when feature disabled The server.uncompressed config option can be used to disable streaming clones. While the top-level capability to advertise streaming clone support isn't advertised when this option is set, we were still sending the bundle2-level capabilities advertising support for stream parts. It makes sense to not advertise that support when streaming clones are globally disabled. If the structure of the new code seems a bit odd, it is because we'll have to further tweak the behavior in commit(s) ahead. Differential Revision: https://phab.mercurial-scm.org/D1929 diff -r 8ed5f7609728 -r c1b9eb15a51c mercurial/bundle2.py --- a/mercurial/bundle2.py Mon Jan 22 12:19:45 2018 -0800 +++ b/mercurial/bundle2.py Mon Jan 22 12:21:15 2018 -0800 @@ -1519,8 +1519,20 @@ caps['checkheads'] = ('related',) if 'phases' in repo.ui.configlist('devel', 'legacy.exchange'): caps.pop('phases') - if not repo.ui.configbool('experimental', 'bundle2.stream'): - caps.pop('stream') + + # Don't advertise stream clone support in server mode if not configured. + if role == 'server': + streamsupported = repo.ui.configbool('server', 'uncompressed', + untrusted=True) + featuresupported = repo.ui.configbool('experimental', 'bundle2.stream') + + if not streamsupported or not featuresupported: + caps.pop('stream') + # role == 'client' + else: + if not repo.ui.configbool('experimental', 'bundle2.stream'): + caps.pop('stream') + return caps def bundle2caps(remote): diff -r 8ed5f7609728 -r c1b9eb15a51c tests/test-clone-uncompressed.t --- a/tests/test-clone-uncompressed.t Mon Jan 22 12:19:45 2018 -0800 +++ b/tests/test-clone-uncompressed.t Mon Jan 22 12:21:15 2018 -0800 @@ -102,7 +102,7 @@ Main capabilities: batch branchmap - $USUAL_BUNDLE2_CAPS$%0Astream%3Dv2 + $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=zstd,zlib getbundle @@ -136,8 +136,6 @@ remote-changegroup http https - stream - v2 $ hg clone --stream -U http://localhost:$HGPORT server-disabled warning: stream clone requested but server has them disabled