Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/revlog.py @ 117:2ac722ad1a9d
Make revision code slightly faster
author | mpm@selenic.com |
---|---|
date | Fri, 20 May 2005 17:36:02 -0800 |
parents | e484cd5ec282 |
children | c7a66f9752a4 |
comparison
equal
deleted
inserted
replaced
116:e484cd5ec282 | 117:2ac722ad1a9d |
---|---|
192 if node == nullid: return "" | 192 if node == nullid: return "" |
193 if self.cache and self.cache[0] == node: return self.cache[2] | 193 if self.cache and self.cache[0] == node: return self.cache[2] |
194 | 194 |
195 text = None | 195 text = None |
196 rev = self.rev(node) | 196 rev = self.rev(node) |
197 base = self.base(rev) | 197 start, length, base, link, p1, p2, node = self.index[rev] |
198 start = self.start(base) | 198 end = start + length |
199 end = self.end(rev) | 199 if base != rev: start = self.start(base) |
200 | 200 |
201 if self.cache and self.cache[1] >= base and self.cache[1] < rev: | 201 if self.cache and self.cache[1] >= base and self.cache[1] < rev: |
202 base = self.cache[1] | 202 base = self.cache[1] |
203 start = self.start(base + 1) | 203 start = self.start(base + 1) |
204 text = self.cache[2] | 204 text = self.cache[2] |
218 bins.append(decompress(data[last:last + s])) | 218 bins.append(decompress(data[last:last + s])) |
219 last = last + s | 219 last = last + s |
220 | 220 |
221 text = mdiff.patches(text, bins) | 221 text = mdiff.patches(text, bins) |
222 | 222 |
223 (p1, p2) = self.parents(node) | |
224 if node != hash(text, p1, p2): | 223 if node != hash(text, p1, p2): |
225 raise IOError("integrity check failed on %s:%d" | 224 raise IOError("integrity check failed on %s:%d" |
226 % (self.datafile, rev)) | 225 % (self.datafile, rev)) |
227 | 226 |
228 self.cache = (node, rev, text) | 227 self.cache = (node, rev, text) |