# HG changeset patch # User Pierre-Yves David # Date 1684623799 -7200 # Node ID f2bcb56a1d39647c5fa90a148880fe3346047346 # Parent cd2a2963b98215cef1aafc5e95b764501b2c422b stream-clone: make sure the `stream` capability is set when bundling This is important to start narrowing protocol option in the next changesets. diff -r cd2a2963b982 -r f2bcb56a1d39 mercurial/bundle2.py --- a/mercurial/bundle2.py Sun May 21 00:00:29 2023 +0200 +++ b/mercurial/bundle2.py Sun May 21 01:03:19 2023 +0200 @@ -1730,6 +1730,8 @@ caps = {} if opts.get(b'obsolescence', False): caps[b'obsmarkers'] = (b'V1',) + if opts.get(b'streamv2'): + caps[b'stream'] = [b'v2'] bundle = bundle20(ui, caps) bundle.setcompression(compression, compopts) _addpartsfromopts(ui, repo, bundle, source, outgoing, opts) diff -r cd2a2963b982 -r f2bcb56a1d39 mercurial/bundlecaches.py --- a/mercurial/bundlecaches.py Sun May 21 00:00:29 2023 +0200 +++ b/mercurial/bundlecaches.py Sun May 21 01:03:19 2023 +0200 @@ -269,17 +269,15 @@ ) # Compute contentopts based on the version - if b"stream" in params and params[b"stream"] == b"v2": - # That case is fishy as this mostly derails the version selection + if b"stream" in params: + # This case is fishy as this mostly derails the version selection # mechanism. `stream` bundles are quite specific and used differently # as "normal" bundles. # - # So we are pinning this to "v2", as this will likely be - # compatible forever. (see the next conditional). - # # (we should probably define a cleaner way to do this and raise a - # warning when the old way is encounter) - version = b"streamv2" + # warning when the old way is encountered) + if params[b"stream"] == b"v2": + version = b"streamv2" contentopts = _bundlespeccontentopts.get(version, {}).copy() if version == b"streamv2": # streamv2 have been reported as "v2" for a while.