[Updated] D8414: nodemap: add a new mode option, with an optional "warn" value
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Thu May 7 15:35:02 UTC 2020
Closed by commit rHG6493f0a567c2: nodemap: add a new mode option, with an optional "warn" value (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/D8414?vs=21227&id=21290
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D8414/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D8414
AFFECTED FILES
mercurial/configitems.py
mercurial/localrepo.py
mercurial/revlogutils/nodemap.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
@@ -10,7 +10,9 @@
> [devel]
> persistent-nodemap=yes
> EOF
- $ hg debugbuilddag .+5000 --new-file
+ $ 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 !)
$ hg debugnodemap --metadata
uid: ???????????????? (glob)
tip-rev: 5000
diff --git a/mercurial/revlogutils/nodemap.py b/mercurial/revlogutils/nodemap.py
--- a/mercurial/revlogutils/nodemap.py
+++ b/mercurial/revlogutils/nodemap.py
@@ -13,6 +13,8 @@
import re
import struct
+from ..i18n import _
+
from .. import (
error,
node as nodemod,
@@ -105,6 +107,9 @@
def addabort(self, *args, **kwargs):
pass
+ def _report(self, *args):
+ pass
+
def update_persistent_nodemap(revlog):
"""update the persistent nodemap right now
@@ -138,6 +143,11 @@
ondisk_docket = revlog._nodemap_docket
feed_data = util.safehasattr(revlog.index, "update_nodemap_data")
use_mmap = revlog.opener.options.get(b"exp-persistent-nodemap.mmap")
+ mode = revlog.opener.options.get(b"exp-persistent-nodemap.mode")
+ if not can_incremental:
+ msg = _(b"persistent nodemap in strict mode without efficient method")
+ if mode == b'warn':
+ tr._report(b"%s\n" % msg)
data = None
# first attemp an incremental update of the data
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -937,6 +937,8 @@
options[b'exp-persistent-nodemap'] = True
if ui.configbool(b'experimental', b'exp-persistent-nodemap.mmap'):
options[b'exp-persistent-nodemap.mmap'] = True
+ epnm = ui.config(b'experimental', b'exp-persistent-nodemap.mode')
+ options[b'exp-persistent-nodemap.mode'] = epnm
if ui.configbool(b'devel', b'persistent-nodemap'):
options[b'devel-force-nodemap'] = True
diff --git a/mercurial/configitems.py b/mercurial/configitems.py
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -681,6 +681,9 @@
b'experimental', b'exp-persistent-nodemap.mmap', default=True,
)
coreconfigitem(
+ b'experimental', b'exp-persistent-nodemap.mode', default=b'compat',
+)
+coreconfigitem(
b'experimental', b'server.filesdata.recommended-batch-size', default=50000,
)
coreconfigitem(
To: marmoute, #hg-reviewers, Alphare
Cc: mercurial-patches, pulkit, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200507/20a78444/attachment-0001.html>
More information about the Mercurial-patches
mailing list