# HG changeset patch # User Pierre-Yves David # Date 1512873596 -3600 # Node ID 83d2a2f3dc8f192107bcc9858abcfa85fc4a1fad # Parent 6ba8eaffe8f6577423d63e6961fcc2d8bdca1501 stablesort: use a regular dict for jumps This will help knowing what revision we have already queried or not. diff -r 6ba8eaffe8f6 -r 83d2a2f3dc8f hgext3rd/evolve/stablesort.py --- a/hgext3rd/evolve/stablesort.py Wed Dec 20 15:51:05 2017 +0100 +++ b/hgext3rd/evolve/stablesort.py Sun Dec 10 03:39:56 2017 +0100 @@ -318,7 +318,7 @@ class stablesortcache(object): def __init__(self): - self._jumps = collections.defaultdict(lambda: None) + self._jumps = {} def get(self, repo, rev, limit=None): result = [] @@ -330,9 +330,11 @@ return result def getjumps(self, repo, rev): - if self._jumps[rev] is None: + if rev not in self._jumps: # still won't load anything if rev is not a merge self.get(repo, rev) # we can be smarter here + if rev not in self._jumps: + self._jumps[rev] = None return self._jumps[rev] def walkfrom(self, repo, head): @@ -366,7 +368,7 @@ previous_current_1 = current assert previous_current_1 is not previous_current_2 - jumps = self._jumps[current] + jumps = self._jumps.get(current) if jumps is not None: # we have enough cached information to directly iterate over # the exclusive size.