mercurial/revlog.py
changeset 64 b3e2ddff0159
parent 46 93e868fa0db8
child 65 d40cc5aacc31
equal deleted inserted replaced
63:1c590d34bf61 64:b3e2ddff0159
   112 
   112 
   113         if not text:
   113         if not text:
   114             last = self.length(base)
   114             last = self.length(base)
   115             text = decompress(data[:last])
   115             text = decompress(data[:last])
   116 
   116 
   117         for r in range(base + 1, rev + 1):
   117         for r in xrange(base + 1, rev + 1):
   118             s = self.length(r)
   118             s = self.length(r)
   119             b = decompress(data[last:last + s])
   119             b = decompress(data[last:last + s])
   120             text = self.patch(text, b)
   120             text = self.patch(text, b)
   121             last = last + s
   121             last = last + s
   122 
   122 
   136 
   136 
   137         n = self.count()
   137         n = self.count()
   138         t = n - 1
   138         t = n - 1
   139 
   139 
   140         if n:
   140         if n:
   141             start = self.start(self.base(t))
   141             base = self.base(t)
       
   142             start = self.start(base)
   142             end = self.end(t)
   143             end = self.end(t)
   143             prev = self.revision(self.tip())
   144             prev = self.revision(self.tip())
   144             data = compress(self.diff(prev, text))
   145             data = compress(self.diff(prev, text))
       
   146             dist = end - start + len(data)
   145 
   147 
   146         # full versions are inserted when the needed deltas
   148         # full versions are inserted when the needed deltas
   147         # become comparable to the uncompressed text
   149         # become comparable to the uncompressed text
   148         if not n or (end + len(data) - start) > len(text) * 2:
   150         if not n or dist > len(text) * 2:
   149             data = compress(text)
   151             data = compress(text)
   150             base = n
   152             base = n
   151         else:
   153         else:
   152             base = self.base(t)
   154             base = self.base(t)
   153 
   155