Show More
@@ -509,7 +509,7 b' class revlog(object):' | |||
|
509 | 509 | def parentrevs(self, rev): |
|
510 | 510 | return self.index[rev][5:7] |
|
511 | 511 | def start(self, rev): |
|
512 |
return |
|
|
512 | return int(self.index[rev][0] >> 16) | |
|
513 | 513 | def end(self, rev): |
|
514 | 514 | return self.start(rev) + self.length(rev) |
|
515 | 515 | def length(self, rev): |
@@ -845,12 +845,7 b' class revlog(object):' | |||
|
845 | 845 | return hash(text, p1, p2) != node |
|
846 | 846 | |
|
847 | 847 | def chunk(self, rev, df=None): |
|
848 | start, length = self.start(rev), self.length(rev) | |
|
849 | if self._inline: | |
|
850 | start += (rev + 1) * self._io.size | |
|
851 | end = start + length | |
|
852 | 848 | def loadcache(df): |
|
853 | cache_length = max(65536, length) | |
|
854 | 849 | if not df: |
|
855 | 850 | if self._inline: |
|
856 | 851 | df = self.opener(self.indexfile) |
@@ -859,21 +854,29 b' class revlog(object):' | |||
|
859 | 854 | df.seek(start) |
|
860 | 855 | self._chunkcache = (start, df.read(cache_length)) |
|
861 | 856 | |
|
862 | if not self._chunkcache: | |
|
863 | loadcache(df) | |
|
857 | start, length = self.start(rev), self.length(rev) | |
|
858 | if self._inline: | |
|
859 | start += (rev + 1) * self._io.size | |
|
860 | end = start + length | |
|
864 | 861 | |
|
862 | offset = 0 | |
|
863 | if not self._chunkcache: | |
|
864 | cache_length = max(65536, length) | |
|
865 | loadcache(df) | |
|
866 | else: | |
|
865 | 867 | cache_start = self._chunkcache[0] |
|
866 |
cache_ |
|
|
868 | cache_length = len(self._chunkcache[1]) | |
|
869 | cache_end = cache_start + cache_length | |
|
867 | 870 | if start >= cache_start and end <= cache_end: |
|
868 | 871 | # it is cached |
|
869 | 872 | offset = start - cache_start |
|
870 | 873 | else: |
|
874 | cache_length = max(65536, length) | |
|
871 | 875 | loadcache(df) |
|
872 | offset = 0 | |
|
873 | 876 | |
|
874 | 877 | # avoid copying large chunks |
|
875 | 878 | c = self._chunkcache[1] |
|
876 |
if |
|
|
879 | if cache_length != length: | |
|
877 | 880 | c = c[offset:offset + length] |
|
878 | 881 | |
|
879 | 882 | return decompress(c) |
General Comments 0
You need to be logged in to leave comments.
Login now