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: