mercurial/revlog.py
changeset 117 2ac722ad1a9d
parent 116 e484cd5ec282
child 119 c7a66f9752a4
equal deleted inserted replaced
116:e484cd5ec282 117:2ac722ad1a9d
   192         if node == nullid: return ""
   192         if node == nullid: return ""
   193         if self.cache and self.cache[0] == node: return self.cache[2]
   193         if self.cache and self.cache[0] == node: return self.cache[2]
   194 
   194 
   195         text = None
   195         text = None
   196         rev = self.rev(node)
   196         rev = self.rev(node)
   197         base = self.base(rev)
   197         start, length, base, link, p1, p2, node = self.index[rev]
   198         start = self.start(base)
   198         end = start + length
   199         end = self.end(rev)
   199         if base != rev: start = self.start(base)
   200 
   200 
   201         if self.cache and self.cache[1] >= base and self.cache[1] < rev:
   201         if self.cache and self.cache[1] >= base and self.cache[1] < rev:
   202             base = self.cache[1]
   202             base = self.cache[1]
   203             start = self.start(base + 1)
   203             start = self.start(base + 1)
   204             text = self.cache[2]
   204             text = self.cache[2]
   218             bins.append(decompress(data[last:last + s]))
   218             bins.append(decompress(data[last:last + s]))
   219             last = last + s
   219             last = last + s
   220 
   220 
   221         text = mdiff.patches(text, bins)
   221         text = mdiff.patches(text, bins)
   222 
   222 
   223         (p1, p2) = self.parents(node)
       
   224         if node != hash(text, p1, p2):
   223         if node != hash(text, p1, p2):
   225             raise IOError("integrity check failed on %s:%d"
   224             raise IOError("integrity check failed on %s:%d"
   226                           % (self.datafile, rev))
   225                           % (self.datafile, rev))
   227 
   226 
   228         self.cache = (node, rev, text)
   227         self.cache = (node, rev, text)