Mercurial > public > mercurial-scm > hg-stable
diff mercurial/revlog.py @ 44017:8042856c90b6
rust-index: add a `experimental.rust.index` option to use the wrapper
Now we can start putting this wrapper on the test and benchmark grill.
Differential Revision: https://phab.mercurial-scm.org/D7660
author | Georges Racinet <georges.racinet@octobus.net> |
---|---|
date | Thu, 12 Dec 2019 18:31:17 +0100 |
parents | bdb357161d7a |
children | ab595920de0e |
line wrap: on
line diff
--- a/mercurial/revlog.py Wed Dec 11 18:10:20 2019 +0100 +++ b/mercurial/revlog.py Thu Dec 12 18:31:17 2019 +0100 @@ -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: