mercurial/revlog.py
changeset 32229 75e93d95aae6
parent 32227 1395f843ece4
child 32244 3de4c61b5087
equal deleted inserted replaced
32228:112ba1c7d65d 32229:75e93d95aae6
  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)