[Updated] [+ ] D8417: nodemap: gate the feature behind a new requirement
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Mon Apr 27 17:18:40 UTC 2020
Herald added a subscriber: mercurial-patches.
marmoute updated this revision to Diff 21228.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D8417?vs=21065&id=21228
BRANCH
default
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
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
To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200427/98f84d59/attachment-0001.html>
More information about the Mercurial-patches
mailing list