equal
deleted
inserted
replaced
1145 return d # avoid a copy |
1145 return d # avoid a copy |
1146 return util.buffer(d, cachestart, cacheend - cachestart) |
1146 return util.buffer(d, cachestart, cacheend - cachestart) |
1147 |
1147 |
1148 return self._readsegment(offset, length, df=df) |
1148 return self._readsegment(offset, length, df=df) |
1149 |
1149 |
1150 def _chunkraw(self, startrev, endrev, df=None): |
1150 def _getsegmentforrevs(self, startrev, endrev, df=None): |
1151 """Obtain a segment of raw data corresponding to a range of revisions. |
1151 """Obtain a segment of raw data corresponding to a range of revisions. |
1152 |
1152 |
1153 Accepts the start and end revisions and an optional already-open |
1153 Accepts the start and end revisions and an optional already-open |
1154 file handle to be used for reading. If the file handle is read, its |
1154 file handle to be used for reading. If the file handle is read, its |
1155 seek position will not be preserved. |
1155 seek position will not be preserved. |
1188 to be used for reading. If used, the seek position of the file will not |
1188 to be used for reading. If used, the seek position of the file will not |
1189 be preserved. |
1189 be preserved. |
1190 |
1190 |
1191 Returns a str holding uncompressed data for the requested revision. |
1191 Returns a str holding uncompressed data for the requested revision. |
1192 """ |
1192 """ |
1193 return self.decompress(self._chunkraw(rev, rev, df=df)[1]) |
1193 return self.decompress(self._getsegmentforrevs(rev, rev, df=df)[1]) |
1194 |
1194 |
1195 def _chunks(self, revs, df=None): |
1195 def _chunks(self, revs, df=None): |
1196 """Obtain decompressed chunks for the specified revisions. |
1196 """Obtain decompressed chunks for the specified revisions. |
1197 |
1197 |
1198 Accepts an iterable of numeric revisions that are assumed to be in |
1198 Accepts an iterable of numeric revisions that are assumed to be in |
1215 |
1215 |
1216 l = [] |
1216 l = [] |
1217 ladd = l.append |
1217 ladd = l.append |
1218 |
1218 |
1219 try: |
1219 try: |
1220 offset, data = self._chunkraw(revs[0], revs[-1], df=df) |
1220 offset, data = self._getsegmentforrevs(revs[0], revs[-1], df=df) |
1221 except OverflowError: |
1221 except OverflowError: |
1222 # issue4215 - we can't cache a run of chunks greater than |
1222 # issue4215 - we can't cache a run of chunks greater than |
1223 # 2G on Windows |
1223 # 2G on Windows |
1224 return [self._chunk(rev, df=df) for rev in revs] |
1224 return [self._chunk(rev, df=df) for rev in revs] |
1225 |
1225 |
1441 fp.close() |
1441 fp.close() |
1442 |
1442 |
1443 df = self.opener(self.datafile, 'w') |
1443 df = self.opener(self.datafile, 'w') |
1444 try: |
1444 try: |
1445 for r in self: |
1445 for r in self: |
1446 df.write(self._chunkraw(r, r)[1]) |
1446 df.write(self._getsegmentforrevs(r, r)[1]) |
1447 finally: |
1447 finally: |
1448 df.close() |
1448 df.close() |
1449 |
1449 |
1450 fp = self.opener(self.indexfile, 'w', atomictemp=True, |
1450 fp = self.opener(self.indexfile, 'w', atomictemp=True, |
1451 checkambig=self._checkambig) |
1451 checkambig=self._checkambig) |