requirements: no longer drop `generaldelta` requirement with revlogv2
authorPierre-Yves David <pierre-yves.david@octobus.net>
Mon, 03 May 2021 12:28:58 +0200
changeset 47221 5eb5b866e517
parent 47220 4039cad0d8ff
child 47222 c2180093682a
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
mercurial/localrepo.py
tests/test-revlog-v2.t
--- 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