# HG changeset patch # User Pierre-Yves David # Date 1712272066 -7200 # Node ID eac84af0c8ccb766ec639697bc7a71d0c97ca99e # Parent 7752cf4f64cce770d3edfb24eb6e6159d26ed689 bundle-spec: properly parse boolean configuration as boolean Before this changesets "v2;revbranchcache=no" would actually request the addition for a revbranchcache part as the non-empty string `"0"` is `True` diff -r 7752cf4f64cc -r eac84af0c8cc mercurial/bundlecaches.py --- a/mercurial/bundlecaches.py Thu Apr 04 16:41:43 2024 +0200 +++ b/mercurial/bundlecaches.py Fri Apr 05 01:07:46 2024 +0200 @@ -179,6 +179,9 @@ b"obsolescence": param_bool, b"obsolescence-mandatory": param_bool, b"phases": param_bool, + b"changegroup": param_bool, + b"tagsfnodescache": param_bool, + b"revbranchcache": param_bool, } diff -r 7752cf4f64cc -r eac84af0c8cc tests/test-bundle-type.t --- a/tests/test-bundle-type.t Thu Apr 04 16:41:43 2024 +0200 +++ b/tests/test-bundle-type.t Fri Apr 05 01:07:46 2024 +0200 @@ -620,3 +620,93 @@ b9f5f740a8cd76700020e3903ee55ecff78bd3e5 $ hg debugbundle ./v2-cg-03.hg --spec bzip2-v2;cg.version=03 + +tests controlling bundle contents +================================= + + $ hg debugupdatecache -R t1 + +default content +--------------- + + $ hg -R t1 bundle --all --quiet --type 'v2' ./v2.hg + $ hg debugbundle ./v2.hg --spec + bzip2-v2 + $ hg debugbundle ./v2.hg --quiet + Stream params: {Compression: BZ} + changegroup -- {nbchanges: 7, version: 02} (mandatory: True) + hgtagsfnodes -- {} (mandatory: False) + cache:rev-branch-cache -- {} (mandatory: False) + + $ hg -R t1 bundle --all --quiet --type 'v3' ./v3.hg + $ hg debugbundle ./v3.hg --spec + bzip2-v2;cg.version=03 + $ hg debugbundle ./v3.hg --quiet + Stream params: {Compression: BZ} + changegroup -- {nbchanges: 7, targetphase: 2, version: 03} (mandatory: True) + hgtagsfnodes -- {} (mandatory: False) + cache:rev-branch-cache -- {} (mandatory: False) + phase-heads -- {} (mandatory: True) + +adding extra parts +------------------ + +We should have a "phase-heads" part here that we did not had in the default content + + $ hg -R t1 bundle --all --quiet --type 'v2;phases=1' ./v2-phases.hg + $ hg debugbundle ./v2-phases.hg --spec + bzip2-v2 + $ hg debugbundle ./v2-phases.hg --quiet + Stream params: {Compression: BZ} + changegroup -- {nbchanges: 7, targetphase: 2, version: 02} (mandatory: True) + hgtagsfnodes -- {} (mandatory: False) + cache:rev-branch-cache -- {} (mandatory: False) + phase-heads -- {} (mandatory: True) + +skipping default inclusion +-------------------------- + + $ hg -R t1 bundle --all --quiet --type 'v2;tagsfnodescache=false' ./v2-no-tfc.hg + $ hg debugbundle ./v2-no-tfc.hg --spec + bzip2-v2 + $ hg debugbundle ./v2-no-tfc.hg --quiet + Stream params: {Compression: BZ} + changegroup -- {nbchanges: 7, version: 02} (mandatory: True) + cache:rev-branch-cache -- {} (mandatory: False) + + $ hg -R t1 bundle --all --quiet --type 'v3;phases=0' ./v3-no-phases.hg + $ hg debugbundle ./v3-no-phases.hg --spec + bzip2-v2;cg.version=03 + $ hg debugbundle ./v3-no-phases.hg --quiet + Stream params: {Compression: BZ} + changegroup -- {nbchanges: 7, version: 03} (mandatory: True) + hgtagsfnodes -- {} (mandatory: False) + cache:rev-branch-cache -- {} (mandatory: False) + + $ hg -R t1 bundle --all --quiet --type 'v3;phases=no;tagsfnodescache=0' ./v3-multi-no.hg + $ hg debugbundle ./v3-multi-no.hg --spec + bzip2-v2;cg.version=03 + $ hg debugbundle ./v3-multi-no.hg --quiet + Stream params: {Compression: BZ} + changegroup -- {nbchanges: 7, version: 03} (mandatory: True) + cache:rev-branch-cache -- {} (mandatory: False) + +skipping changegroup +-------------------- + + $ hg -R t1 bundle --all --quiet --type 'v2;changegroup=no' ./v2-no-cg.hg + $ hg debugbundle ./v2-no-cg.hg --spec + bzip2-v2;changegroup=no + $ hg debugbundle ./v2-no-cg.hg --quiet + Stream params: {Compression: BZ} + hgtagsfnodes -- {} (mandatory: False) + cache:rev-branch-cache -- {} (mandatory: False) + + $ hg -R t1 bundle --all --quiet --type 'v3;changegroup=0' ./v3-no-cg.hg + $ hg debugbundle ./v3-no-cg.hg --spec + bzip2-v2;changegroup=no + $ hg debugbundle ./v3-no-cg.hg --quiet + Stream params: {Compression: BZ} + hgtagsfnodes -- {} (mandatory: False) + cache:rev-branch-cache -- {} (mandatory: False) + phase-heads -- {} (mandatory: True)