stablesort: use a regular dict for jumps
This will help knowing what revision we have already queried or not.
--- 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.