##// END OF EJS Templates
revlog: move chunk cache preload from revision to _chunks...
Siddharth Agarwal -
r19716:e1797697 default
parent child Browse files
Show More
@@ -859,6 +859,8 b' class revlog(object):'
859 859 '''faster version of [self._chunk(rev) for rev in revs]
860 860
861 861 Assumes that revs is in ascending order.'''
862 if not revs:
863 return []
862 864 start = self.start
863 865 length = self.length
864 866 inline = self._inline
@@ -868,7 +870,8 b' class revlog(object):'
868 870 l = []
869 871 ladd = l.append
870 872
871 # XXX assume for now that chunkcache is preloaded
873 # preload the cache
874 self._chunkraw(revs[0], revs[-1])
872 875 offset, data = self._chunkcache
873 876
874 877 for rev in revs:
@@ -946,21 +949,22 b' class revlog(object):'
946 949 else:
947 950 iterrev -= 1
948 951 e = index[iterrev]
949 chain.reverse()
950 base = iterrev
951 952
952 953 if iterrev == cachedrev:
953 954 # cache hit
954 955 text = self._cache[2]
956 else:
957 chain.append(iterrev)
958 chain.reverse()
955 959
956 960 # drop cache to save memory
957 961 self._cache = None
958 962
959 self._chunkraw(base, rev)
963 bins = self._chunks(chain)
960 964 if text is None:
961 text = str(self._chunkbase(base))
965 text = str(bins[0])
966 bins = bins[1:]
962 967
963 bins = self._chunks(chain)
964 968 text = mdiff.patches(text, bins)
965 969
966 970 text = self._checkhash(text, node, rev)
General Comments 0
You need to be logged in to leave comments. Login now