comparison mercurial/revlogutils/deltas.py @ 49679:b670eb3dd6c9

delta-find: use sets instead of list in the snapshot cache This seems more appropriate.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 06 Nov 2022 17:55:46 -0500
parents efbbc2f9121e
children 40e24d82b513
comparison
equal deleted inserted replaced
49678:efbbc2f9121e 49679:b670eb3dd6c9
987 987
988 class SnapshotCache: 988 class SnapshotCache:
989 __slots__ = ('snapshots', '_start_rev', '_end_rev') 989 __slots__ = ('snapshots', '_start_rev', '_end_rev')
990 990
991 def __init__(self): 991 def __init__(self):
992 # XXX should probably be a set ? 992 self.snapshots = collections.defaultdict(set)
993 self.snapshots = collections.defaultdict(list)
994 self._start_rev = None 993 self._start_rev = None
995 self._end_rev = None 994 self._end_rev = None
996 995
997 def update(self, revlog, start_rev=0): 996 def update(self, revlog, start_rev=0):
998 """find snapshots from start_rev to tip""" 997 """find snapshots from start_rev to tip"""
1036 else: 1035 else:
1037 deltaparent = revlog.deltaparent 1036 deltaparent = revlog.deltaparent
1038 issnapshot = revlog.issnapshot 1037 issnapshot = revlog.issnapshot
1039 for rev in revlog.revs(start_rev, end_rev): 1038 for rev in revlog.revs(start_rev, end_rev):
1040 if issnapshot(rev): 1039 if issnapshot(rev):
1041 cache[deltaparent(rev)].append(rev) 1040 cache[deltaparent(rev)].add(rev)
1042 1041
1043 1042
1044 class deltacomputer: 1043 class deltacomputer:
1045 def __init__( 1044 def __init__(
1046 self, 1045 self,