Mercurial > public > mercurial-scm > hg-stable
diff mercurial/revlog.py @ 98:3dde7c87e36d
Add paranoia to diff code
author | mpm@selenic.com |
---|---|
date | Wed, 18 May 2005 16:59:54 -0800 |
parents | 7a2abee6b0c2 |
children | aea6562add6c |
line wrap: on
line diff
--- a/mercurial/revlog.py Wed May 18 16:47:49 2005 -0800 +++ b/mercurial/revlog.py Wed May 18 16:59:54 2005 -0800 @@ -190,7 +190,8 @@ (p1, p2) = self.parents(node) if node != hash(text, p1, p2): - raise "integrity check failed on %s:%d" % (self.datafile, rev) + raise IOError("integrity check failed on %s:%d" + % (self.datafile, rev)) self.cache = (node, rev, text) return text @@ -210,7 +211,10 @@ start = self.start(base) end = self.end(t) prev = self.revision(self.tip()) - data = compress(self.diff(prev, text)) + d = self.diff(prev, text) + if self.patches(prev, [d]) != text: + raise AssertionError("diff failed") + data = compress(d) dist = end - start + len(data) # full versions are inserted when the needed deltas