equal
deleted
inserted
replaced
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: |