##// 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 return self._loadchunk(offset, length, df)
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 def chunk(self, rev, df=None):
960 def chunk(self, rev, df=None):
953 start, length = self.start(rev), self.length(rev)
961 start, length = self.start(rev), self.length(rev)
954 if self._inline:
962 if self._inline:
@@ -989,10 +997,12 b' class revlog(object):'
989 self._loadindex(base, rev + 1)
997 self._loadindex(base, rev + 1)
990 if not self._inline and rev > base + 1:
998 if not self._inline and rev > base + 1:
991 df = self.opener(self.datafile)
999 df = self.opener(self.datafile)
1000 self._prime(base, rev, df)
992 else:
1001 else:
993 self._loadindex(base, rev + 1)
1002 self._loadindex(base, rev + 1)
994 if not self._inline and rev > base:
1003 if not self._inline and rev > base:
995 df = self.opener(self.datafile)
1004 df = self.opener(self.datafile)
1005 self._prime(base, rev, df)
996 text = self.chunk(base, df=df)
1006 text = self.chunk(base, df=df)
997
1007
998 bins = [self.chunk(r, df) for r in xrange(base + 1, rev + 1)]
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