D7660: rust-index: add a `experimental.rust.index` option to use the wrapper
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Fri Dec 27 17:14:02 UTC 2019
marmoute updated this revision to Diff 18943.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D7660?vs=18706&id=18943
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D7660/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D7660
AFFECTED FILES
mercurial/configitems.py
mercurial/localrepo.py
mercurial/revlog.py
CHANGE DETAILS
diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -106,6 +106,7 @@
parsers = policy.importmod('parsers')
rustancestor = policy.importrust('ancestor')
rustdagop = policy.importrust('dagop')
+rustrevlog = policy.importrust('revlog')
# Aliased for performance.
_zlibdecompress = zlib.decompress
@@ -351,6 +352,12 @@
return p
+class rustrevlogio(revlogio):
+ def parseindex(self, data, inline):
+ index, cache = super(rustrevlogio, self).parseindex(data, inline)
+ return rustrevlog.MixedIndex(index), cache
+
+
class revlog(object):
"""
the underlying revision storage object
@@ -585,6 +592,8 @@
self._storedeltachains = True
self._io = revlogio()
+ if rustrevlog is not None and self.opener.options.get('rust.index'):
+ self._io = rustrevlogio()
if self.version == REVLOGV0:
self._io = revlogoldio()
try:
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -927,6 +927,9 @@
if repository.NARROW_REQUIREMENT in requirements:
options[b'enableellipsis'] = True
+ if ui.configbool('experimental', 'rust.index'):
+ options[b'rust.index'] = True
+
return options
diff --git a/mercurial/configitems.py b/mercurial/configitems.py
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -657,6 +657,9 @@
b'experimental', b'revisions.disambiguatewithin', default=None,
)
coreconfigitem(
+ b'experimental', b'rust.index', default=False,
+)
+coreconfigitem(
b'experimental', b'server.filesdata.recommended-batch-size', default=50000,
)
coreconfigitem(
To: marmoute, indygreg, #hg-reviewers, Alphare
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list