##// END OF EJS Templates
revlog: return offset from _chunkraw()...
Gregory Szorc -
r27649:6446e9b3 default
parent child Browse files
Show More
@@ -568,7 +568,7 b' def perfrevlogrevision(ui, repo, file_, '
568 r.revision(node)
568 r.revision(node)
569
569
570 chain = r._deltachain(rev)[0]
570 chain = r._deltachain(rev)[0]
571 data = r._chunkraw(chain[0], chain[-1])
571 data = r._chunkraw(chain[0], chain[-1])[1]
572 bins = r._chunks(chain)
572 bins = r._chunks(chain)
573 text = str(bins[0])
573 text = str(bins[0])
574 bins = bins[1:]
574 bins = bins[1:]
@@ -1071,9 +1071,12 b' class revlog(object):'
1071
1071
1072 Requests for data may be satisfied by a cache.
1072 Requests for data may be satisfied by a cache.
1073
1073
1074 Returns a str or a buffer instance of raw byte data. Callers will
1074 Returns a 2-tuple of (offset, data) for the requested range of
1075 need to call ``self.start(rev)`` and ``self.length()`` to determine
1075 revisions. Offset is the integer offset from the beginning of the
1076 where each revision's data begins and ends.
1076 revlog and data is a str or buffer of the raw byte data.
1077
1078 Callers will need to call ``self.start(rev)`` and ``self.length(rev)``
1079 to determine where each revision's data begins and ends.
1077 """
1080 """
1078 start = self.start(startrev)
1081 start = self.start(startrev)
1079 end = self.end(endrev)
1082 end = self.end(endrev)
@@ -1081,7 +1084,8 b' class revlog(object):'
1081 start += (startrev + 1) * self._io.size
1084 start += (startrev + 1) * self._io.size
1082 end += (endrev + 1) * self._io.size
1085 end += (endrev + 1) * self._io.size
1083 length = end - start
1086 length = end - start
1084 return self._getchunk(start, length, df=df)
1087
1088 return start, self._getchunk(start, length, df=df)
1085
1089
1086 def _chunk(self, rev, df=None):
1090 def _chunk(self, rev, df=None):
1087 """Obtain a single decompressed chunk for a revision.
1091 """Obtain a single decompressed chunk for a revision.
@@ -1092,7 +1096,7 b' class revlog(object):'
1092
1096
1093 Returns a str holding uncompressed data for the requested revision.
1097 Returns a str holding uncompressed data for the requested revision.
1094 """
1098 """
1095 return decompress(self._chunkraw(rev, rev, df=df))
1099 return decompress(self._chunkraw(rev, rev, df=df)[1])
1096
1100
1097 def _chunks(self, revs, df=None):
1101 def _chunks(self, revs, df=None):
1098 """Obtain decompressed chunks for the specified revisions.
1102 """Obtain decompressed chunks for the specified revisions.
@@ -1123,7 +1127,7 b' class revlog(object):'
1123 while True:
1127 while True:
1124 # ensure that the cache doesn't change out from under us
1128 # ensure that the cache doesn't change out from under us
1125 _cache = self._chunkcache
1129 _cache = self._chunkcache
1126 self._chunkraw(revs[0], revs[-1], df=df)
1130 self._chunkraw(revs[0], revs[-1], df=df)[1]
1127 if _cache == self._chunkcache:
1131 if _cache == self._chunkcache:
1128 break
1132 break
1129 offset, data = _cache
1133 offset, data = _cache
@@ -1267,7 +1271,7 b' class revlog(object):'
1267 df = self.opener(self.datafile, 'w')
1271 df = self.opener(self.datafile, 'w')
1268 try:
1272 try:
1269 for r in self:
1273 for r in self:
1270 df.write(self._chunkraw(r, r))
1274 df.write(self._chunkraw(r, r)[1])
1271 finally:
1275 finally:
1272 df.close()
1276 df.close()
1273
1277
General Comments 0
You need to be logged in to leave comments. Login now