Matt Mackall <mpm@selenic.com> [Tue, 11 Jan 2011 21:52:03 -0600] rev 13259
revlog: do revlog node->rev mapping by scanning
Now that the nodemap is lazily created, we use linear scanning back
from tip for typical node to rev mapping. Given that nodemap creation
is O(n log n) and revisions searched for are usually very close to
tip, this is often a significant performance win for a small number of
searches.
When we do end up building a nodemap for bulk lookups, the scanning
function is replaced with a hash lookup.
Matt Mackall <mpm@selenic.com> [Tue, 11 Jan 2011 17:12:32 -0600] rev 13258
revlog: introduce a cache for partial lookups
Partial lookups are always O(n), and often we look up the same
one multiple times.
Matt Mackall <mpm@selenic.com> [Tue, 11 Jan 2011 17:09:06 -0600] rev 13257
tags: avoid a pointless usage of revlog.nodemap