Mercurial > public > mercurial-scm > hg-stable
diff mercurial/exchange.py @ 30890:10c0ee338535 stable
exchange: use v2 bundles for modern compression engines (issue5506)
Previously, `hg bundle zstd` on a non-generaldelta repo would
attempt to use a v1 bundle. This would fail because zstd is not
supported on v1 bundles.
This patch changes the behavior to automatically use a v2 bundle
when the user explicitly requests a bundlespec that is a compression
engine not supported on v1. If the bundlespec is <engine>-v1, it is
still explicitly rejected because that request cannot be fulfilled.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 16 Mar 2017 12:33:15 -0700 |
parents | ffed3bf5cd4c |
children | 291951ad070b |
line wrap: on
line diff
--- a/mercurial/exchange.py Thu Mar 16 12:23:56 2017 -0700 +++ b/mercurial/exchange.py Thu Mar 16 12:33:15 2017 -0700 @@ -130,8 +130,12 @@ if spec in util.compengines.supportedbundlenames: compression = spec version = 'v1' + # Generaldelta repos require v2. if 'generaldelta' in repo.requirements: version = 'v2' + # Modern compression engines require v2. + if compression not in _bundlespecv1compengines: + version = 'v2' elif spec in _bundlespeccgversions: if spec == 'packed1': compression = 'none'