##// END OF EJS Templates
revlog: add cache priming for reconstructing delta chains
Matt Mackall -
r8318:6b8513f8 default
parent child Browse files
Show More
@@ -949,6 +949,14 b' class revlog(object):'
949 949
950 950 return self._loadchunk(offset, length, df)
951 951
952 def _prime(self, startrev, endrev, df):
953 start = self.start(startrev)
954 end = self.end(endrev)
955 if self._inline:
956 start += (startrev + 1) * self._io.size
957 end += (startrev + 1) * self._io.size
958 self._loadchunk(start, end - start, df)
959
952 960 def chunk(self, rev, df=None):
953 961 start, length = self.start(rev), self.length(rev)
954 962 if self._inline:
@@ -989,10 +997,12 b' class revlog(object):'
989 997 self._loadindex(base, rev + 1)
990 998 if not self._inline and rev > base + 1:
991 999 df = self.opener(self.datafile)
1000 self._prime(base, rev, df)
992 1001 else:
993 1002 self._loadindex(base, rev + 1)
994 1003 if not self._inline and rev > base:
995 1004 df = self.opener(self.datafile)
1005 self._prime(base, rev, df)
996 1006 text = self.chunk(base, df=df)
997 1007
998 1008 bins = [self.chunk(r, df) for r in xrange(base + 1, rev + 1)]
General Comments 0
You need to be logged in to leave comments. Login now