# HG changeset patch # User Pierre-Yves David # Date 1620037738 -7200 # Node ID 5eb5b866e517c25f91a873885742cf4e2cde28eb # Parent 4039cad0d8ff512bfc76497856159a2137bc43c3 requirements: no longer drop `generaldelta` requirement with revlogv2 A repository could use a mix of revlogv1 and revlogv2, making the requirements still necessary. Overall we should move away from the "requirements" file being used a way to configure the repository and stick to it "what do you need to access this repository". However this is a wider work for another time. In addition the logic we just dropped was confusing the `hg debugformat` command, breaking the upgrade code and inconsistent (eg: `sparse-revlog` is also implied by `revlogv2`). Finally, multiple other config option would imply the use of the `revlogv2` requirements, without drop the `generaldelta` one, leading to more inconsistency. Differential Revision: https://phab.mercurial-scm.org/D10612 diff -r 4039cad0d8ff -r 5eb5b866e517 mercurial/localrepo.py --- a/mercurial/localrepo.py Mon May 03 12:28:47 2021 +0200 +++ b/mercurial/localrepo.py Mon May 03 12:28:58 2021 +0200 @@ -3531,8 +3531,6 @@ revlogv2 = ui.config(b'experimental', b'revlogv2') if revlogv2 == b'enable-unstable-format-and-corrupt-my-data': requirements.discard(requirementsmod.REVLOGV1_REQUIREMENT) - # generaldelta is implied by revlogv2. - requirements.discard(requirementsmod.GENERALDELTA_REQUIREMENT) requirements.add(requirementsmod.REVLOGV2_REQUIREMENT) # experimental config: format.internal-phase if ui.configbool(b'format', b'internal-phase'): diff -r 4039cad0d8ff -r 5eb5b866e517 tests/test-revlog-v2.t --- a/tests/test-revlog-v2.t Mon May 03 12:28:47 2021 +0200 +++ b/tests/test-revlog-v2.t Mon May 03 12:28:58 2021 +0200 @@ -24,6 +24,7 @@ dotencode exp-revlogv2.2 fncache + generaldelta persistent-nodemap (rust !) revlog-compression-zstd (zstd !) sparserevlog