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
--- 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'):
--- 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