Mercurial > public > mercurial-scm > hg-stable
diff mercurial/revlog.py @ 64:b3e2ddff0159
Diff in subdirectories from Jake Edge
Dates in diff
Fix O(n^2) behaviour of manifest diff
Add a/ and b/ to work with patch -p1
author | mpm@selenic.com |
---|---|
date | Thu, 12 May 2005 17:54:55 -0800 |
parents | 93e868fa0db8 |
children | d40cc5aacc31 |
line wrap: on
line diff
--- a/mercurial/revlog.py Thu May 12 01:23:51 2005 -0800 +++ b/mercurial/revlog.py Thu May 12 17:54:55 2005 -0800 @@ -114,7 +114,7 @@ last = self.length(base) text = decompress(data[:last]) - for r in range(base + 1, rev + 1): + for r in xrange(base + 1, rev + 1): s = self.length(r) b = decompress(data[last:last + s]) text = self.patch(text, b) @@ -138,14 +138,16 @@ t = n - 1 if n: - start = self.start(self.base(t)) + base = self.base(t) + start = self.start(base) end = self.end(t) prev = self.revision(self.tip()) data = compress(self.diff(prev, text)) + dist = end - start + len(data) # full versions are inserted when the needed deltas # become comparable to the uncompressed text - if not n or (end + len(data) - start) > len(text) * 2: + if not n or dist > len(text) * 2: data = compress(text) base = n else: