diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -315,6 +315,10 @@ version = part.params[b'version'] if version in (b'01', b'02'): version = b'v2' + elif version == b'03' and ui.configbool( + b'experimental', b'changegroup3' + ): + version = b'v2' else: raise error.Abort( _( diff --git a/tests/test-lfs-bundle.t b/tests/test-lfs-bundle.t --- a/tests/test-lfs-bundle.t +++ b/tests/test-lfs-bundle.t @@ -95,3 +95,27 @@ OK ---- Applying src-lfs.bundle to dst-lfs ---- OK + + $ for i in $SRCNAMES; do + > echo % test bundle type $i + > hg debugbundle $TESTTMP/$i.bundle + > hg debugbundle --config experimental.changegroup3=True \ + > --spec $TESTTMP/$i.bundle + > echo + > done + % test bundle type src-normal + Stream params: {Compression: BZ} + changegroup -- {nbchanges: 2, version: 03} (mandatory: True) + 92a23f1a59ca009ca9631a529d05e020c3873842 + 7ee5ca02c65436e529977365458ef3062cf9f746 + cache:rev-branch-cache -- {} (mandatory: False) + bzip2-v2 + + % test bundle type src-lfs + Stream params: {Compression: BZ} + changegroup -- {nbchanges: 2, version: 03} (mandatory: True) + 92a23f1a59ca009ca9631a529d05e020c3873842 + 7ee5ca02c65436e529977365458ef3062cf9f746 + cache:rev-branch-cache -- {} (mandatory: False) + bzip2-v2 +