Show More
@@ -78,7 +78,11 b' class manifest(revlog):' | |||
|
78 | 78 | def diff(self, a, b): |
|
79 | 79 | # this is sneaky, as we're not actually using a and b |
|
80 | 80 | if self.listcache and len(self.listcache[0]) == len(a): |
|
81 |
|
|
|
81 | d = mdiff.diff(self.listcache[1], self.addlist, 1) | |
|
82 | if mdiff.patch(a, d) != b: | |
|
83 | sys.stderr.write("*** sortdiff failed, falling back ***\n") | |
|
84 | return mdiff.textdiff(a, b) | |
|
85 | return d | |
|
82 | 86 | else: |
|
83 | 87 | return mdiff.textdiff(a, b) |
|
84 | 88 |
@@ -190,7 +190,8 b' class revlog:' | |||
|
190 | 190 | |
|
191 | 191 | (p1, p2) = self.parents(node) |
|
192 | 192 | if node != hash(text, p1, p2): |
|
193 |
raise "integrity check failed on %s:%d" |
|
|
193 | raise IOError("integrity check failed on %s:%d" | |
|
194 | % (self.datafile, rev)) | |
|
194 | 195 | |
|
195 | 196 | self.cache = (node, rev, text) |
|
196 | 197 | return text |
@@ -210,7 +211,10 b' class revlog:' | |||
|
210 | 211 | start = self.start(base) |
|
211 | 212 | end = self.end(t) |
|
212 | 213 | prev = self.revision(self.tip()) |
|
213 |
d |
|
|
214 | d = self.diff(prev, text) | |
|
215 | if self.patches(prev, [d]) != text: | |
|
216 | raise AssertionError("diff failed") | |
|
217 | data = compress(d) | |
|
214 | 218 | dist = end - start + len(data) |
|
215 | 219 | |
|
216 | 220 | # full versions are inserted when the needed deltas |
General Comments 0
You need to be logged in to leave comments.
Login now