Mercurial > hg
changeset 24292:b7add2ebef9e
manifest: rewrite find(node, f) in terms of read(node)
Since find() now always works with a full manifest, we can simplify by
calling read() to give us that manifest. That way, we also populate
the manifest cache. However, now that we no longer parse the manifest
text into a Python type (thanks, lazymanifest/Augie), the cost of
parsing (scanning for newlines, really) is small enough that it seems
generally drowned by revlog reading.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 11 Mar 2015 08:28:56 -0700 |
parents | 760a86865f80 |
children | 30e9ee203846 |
files | mercurial/manifest.py |
diffstat | 1 files changed, 2 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/manifest.py Thu Feb 26 22:54:13 2015 +0900 +++ b/mercurial/manifest.py Wed Mar 11 08:28:56 2015 -0700 @@ -350,12 +350,9 @@ def find(self, node, f): '''look up entry for a single file efficiently. return (node, flags) pair if found, (None, None) if not.''' - if node in self._mancache: - m = self._mancache[node][0] - return m.get(f), m.flags(f) - text = self.revision(node) + m = self.read(node) try: - return manifestdict(text).find(f) + return m.find(f) except KeyError: return None, None