##// END OF EJS Templates
revlog: enforce chunk slicing down to a certain size...
Boris Feld -
r38666:43d0619c default
parent child Browse files
Show More
@@ -1949,7 +1949,7 b' class revlog(object):'
1949 """
1949 """
1950 return self.decompress(self._getsegmentforrevs(rev, rev, df=df)[1])
1950 return self.decompress(self._getsegmentforrevs(rev, rev, df=df)[1])
1951
1951
1952 def _chunks(self, revs, df=None):
1952 def _chunks(self, revs, df=None, targetsize=None):
1953 """Obtain decompressed chunks for the specified revisions.
1953 """Obtain decompressed chunks for the specified revisions.
1954
1954
1955 Accepts an iterable of numeric revisions that are assumed to be in
1955 Accepts an iterable of numeric revisions that are assumed to be in
@@ -1976,7 +1976,7 b' class revlog(object):'
1976 if not self._withsparseread:
1976 if not self._withsparseread:
1977 slicedchunks = (revs,)
1977 slicedchunks = (revs,)
1978 else:
1978 else:
1979 slicedchunks = _slicechunk(self, revs)
1979 slicedchunks = _slicechunk(self, revs, targetsize)
1980
1980
1981 for revschunk in slicedchunks:
1981 for revschunk in slicedchunks:
1982 firstrev = revschunk[0]
1982 firstrev = revschunk[0]
@@ -2079,7 +2079,12 b' class revlog(object):'
2079 # drop cache to save memory
2079 # drop cache to save memory
2080 self._cache = None
2080 self._cache = None
2081
2081
2082 bins = self._chunks(chain, df=_df)
2082 targetsize = None
2083 rawsize = self.index[rev][2]
2084 if 0 <= rawsize:
2085 targetsize = 4 * rawsize
2086
2087 bins = self._chunks(chain, df=_df, targetsize=targetsize)
2083 if rawtext is None:
2088 if rawtext is None:
2084 rawtext = bytes(bins[0])
2089 rawtext = bytes(bins[0])
2085 bins = bins[1:]
2090 bins = bins[1:]
General Comments 0
You need to be logged in to leave comments. Login now