Patchwork D10612: requirements: no longer drop `generaldelta` requirement with revlogv2

login
register
mail settings
Submitter phabricator
Date May 3, 2021, 12:08 p.m.
Message ID <differential-rev-PHID-DREV-xj37zto2a2uo7fjiwe6u-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/48934/
State Superseded
Headers show

Comments

phabricator - May 3, 2021, 12:08 p.m.
marmoute created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  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.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D10612

AFFECTED FILES
  mercurial/localrepo.py
  tests/test-revlog-v2.t

CHANGE DETAILS




To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

diff --git a/tests/test-revlog-v2.t b/tests/test-revlog-v2.t
--- a/tests/test-revlog-v2.t
+++ b/tests/test-revlog-v2.t
@@ -24,6 +24,7 @@ 
   dotencode
   exp-revlogv2.2
   fncache
+  generaldelta
   persistent-nodemap (rust !)
   revlog-compression-zstd (zstd !)
   sparserevlog
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -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'):