mercurial/revlog.py
changeset 98 3dde7c87e36d
parent 97 7a2abee6b0c2
child 112 aea6562add6c
equal deleted inserted replaced
97:7a2abee6b0c2 98:3dde7c87e36d
   188 
   188 
   189         text = mdiff.patches(text, bins)
   189         text = mdiff.patches(text, bins)
   190 
   190 
   191         (p1, p2) = self.parents(node)
   191         (p1, p2) = self.parents(node)
   192         if node != hash(text, p1, p2):
   192         if node != hash(text, p1, p2):
   193             raise "integrity check failed on %s:%d" % (self.datafile, rev)
   193             raise IOError("integrity check failed on %s:%d"
       
   194                           % (self.datafile, rev))
   194 
   195 
   195         self.cache = (node, rev, text)
   196         self.cache = (node, rev, text)
   196         return text  
   197         return text  
   197 
   198 
   198     def addrevision(self, text, transaction, link, p1=None, p2=None):
   199     def addrevision(self, text, transaction, link, p1=None, p2=None):
   208         if n:
   209         if n:
   209             base = self.base(t)
   210             base = self.base(t)
   210             start = self.start(base)
   211             start = self.start(base)
   211             end = self.end(t)
   212             end = self.end(t)
   212             prev = self.revision(self.tip())
   213             prev = self.revision(self.tip())
   213             data = compress(self.diff(prev, text))
   214             d = self.diff(prev, text)
       
   215             if self.patches(prev, [d]) != text:
       
   216                 raise AssertionError("diff failed")
       
   217             data = compress(d)
   214             dist = end - start + len(data)
   218             dist = end - start + len(data)
   215 
   219 
   216         # full versions are inserted when the needed deltas
   220         # full versions are inserted when the needed deltas
   217         # become comparable to the uncompressed text
   221         # become comparable to the uncompressed text
   218         if not n or dist > len(text) * 2:
   222         if not n or dist > len(text) * 2: