From patchwork Thu May 7 15:35:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D8417: nodemap: gate the feature behind a new requirement From: phabricator X-Patchwork-Id: 46274 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Thu, 7 May 2020 15:35:28 +0000 Closed by commit rHGb81486b609a3: nodemap: gate the feature behind a new requirement (authored by marmoute). This revision was automatically updated to reflect the committed changes. This revision was not accepted when it landed; it landed in state "Needs Review". REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D8417?vs=21228&id=21293 CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D8417/new/ REVISION DETAIL https://phab.mercurial-scm.org/D8417 AFFECTED FILES mercurial/localrepo.py tests/test-persistent-nodemap.t CHANGE DETAILS To: marmoute, #hg-reviewers, Alphare Cc: mercurial-patches, mercurial-devel diff --git a/tests/test-persistent-nodemap.t b/tests/test-persistent-nodemap.t --- a/tests/test-persistent-nodemap.t +++ b/tests/test-persistent-nodemap.t @@ -2,14 +2,14 @@ Test the persistent on-disk nodemap =================================== - $ hg init test-repo - $ cd test-repo - $ cat << EOF >> .hg/hgrc + $ cat << EOF >> $HGRCPATH > [experimental] > exp-persistent-nodemap=yes > [devel] > persistent-nodemap=yes > EOF + $ hg init test-repo + $ cd test-repo $ hg debugbuilddag .+5000 --new-file --config "experimental.exp-persistent-nodemap.mode=warn" persistent nodemap in strict mode without efficient method (no-rust no-pure !) persistent nodemap in strict mode without efficient method (no-rust no-pure !) diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -445,6 +445,9 @@ # copies related information in changeset's sidedata. COPIESSDC_REQUIREMENT = b'exp-copies-sidedata-changeset' +# The repository use persistent nodemap for the changelog and the manifest. +NODEMAP_REQUIREMENT = b'persistent-nodemap' + # Functions receiving (ui, features) that extensions can register to impact # the ability to load repositories with custom requirements. Only # functions defined in loaded extensions are called. @@ -933,7 +936,7 @@ if ui.configbool(b'experimental', b'rust.index'): options[b'rust.index'] = True - if ui.configbool(b'experimental', b'exp-persistent-nodemap'): + if NODEMAP_REQUIREMENT in requirements: options[b'exp-persistent-nodemap'] = True if ui.configbool(b'experimental', b'exp-persistent-nodemap.mmap'): options[b'exp-persistent-nodemap.mmap'] = True @@ -1023,6 +1026,7 @@ REVLOGV2_REQUIREMENT, SIDEDATA_REQUIREMENT, SPARSEREVLOG_REQUIREMENT, + NODEMAP_REQUIREMENT, bookmarks.BOOKMARKS_IN_STORE_REQUIREMENT, } _basesupported = supportedformats | { @@ -3660,6 +3664,9 @@ if ui.configbool(b'format', b'bookmarks-in-store'): requirements.add(bookmarks.BOOKMARKS_IN_STORE_REQUIREMENT) + if ui.configbool(b'experimental', b'exp-persistent-nodemap'): + requirements.add(NODEMAP_REQUIREMENT) + return requirements