Mercurial > hg
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, |