# HG changeset patch # User Pierre-Yves David # Date 1579099660 -3600 # Node ID daad3aace942b7049484b3ecc2d179754f50241e # Parent 6c07480d66592c321c38ac25aaa006be8438998c nodemap: only use persistent nodemap for non-inlined revlog Revlog are inlined while they are small (to avoid having too many file to deal with). The persistent nodemap will only provides a significant boost for large enough revlog index. So it does not make sens to add an extra file to store nodemap for small revlog. We could consider inclining the nodemap data inside the revlog itself, but the benefit is unclear so let it be an adventure for another time. Differential Revision: https://phab.mercurial-scm.org/D7837 diff -r 6c07480d6659 -r daad3aace942 mercurial/revlog.py --- a/mercurial/revlog.py Wed Jan 15 15:47:31 2020 +0100 +++ b/mercurial/revlog.py Wed Jan 15 15:47:40 2020 +0100 @@ -1965,6 +1965,7 @@ # manager tr.replace(self.indexfile, trindex * self._io.size) + nodemaputil.setup_persistent_nodemap(tr, self) self._chunkclear() def _nodeduplicatecallback(self, transaction, node): diff -r 6c07480d6659 -r daad3aace942 mercurial/revlogutils/nodemap.py --- a/mercurial/revlogutils/nodemap.py Wed Jan 15 15:47:31 2020 +0100 +++ b/mercurial/revlogutils/nodemap.py Wed Jan 15 15:47:40 2020 +0100 @@ -34,6 +34,8 @@ (only actually persist the nodemap if this is relevant for this revlog) """ + if revlog._inline: + return # inlined revlog are too small for this to be relevant if revlog.nodemap_file is None: return # we do not use persistent_nodemap on this revlog callback_id = b"revlog-persistent-nodemap-%s" % revlog.nodemap_file