Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revlog.py @ 1667:daff3ef0de8d
verify: notice extra data in indices
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 30 Jan 2006 19:34:35 +1300 |
parents | b2df93c56ac4 |
children | c21b54f7f7b8 8959700c2b19 |
comparison
equal
deleted
inserted
replaced
1666:0fc1b588976f | 1667:daff3ef0de8d |
---|---|
211 l = len(i) / s | 211 l = len(i) / s |
212 self.index = [None] * l | 212 self.index = [None] * l |
213 m = [None] * l | 213 m = [None] * l |
214 | 214 |
215 n = 0 | 215 n = 0 |
216 for f in xrange(0, len(i), s): | 216 for f in xrange(0, l * s, s): |
217 # offset, size, base, linkrev, p1, p2, nodeid | 217 # offset, size, base, linkrev, p1, p2, nodeid |
218 e = struct.unpack(indexformat, i[f:f + s]) | 218 e = struct.unpack(indexformat, i[f:f + s]) |
219 m[n] = (e[6], n) | 219 m[n] = (e[6], n) |
220 self.index[n] = e | 220 self.index[n] = e |
221 n += 1 | 221 n += 1 |
839 | 839 |
840 def checksize(self): | 840 def checksize(self): |
841 expected = 0 | 841 expected = 0 |
842 if self.count(): | 842 if self.count(): |
843 expected = self.end(self.count() - 1) | 843 expected = self.end(self.count() - 1) |
844 | |
844 try: | 845 try: |
845 f = self.opener(self.datafile) | 846 f = self.opener(self.datafile) |
846 f.seek(0, 2) | 847 f.seek(0, 2) |
847 actual = f.tell() | 848 actual = f.tell() |
848 return expected - actual | 849 dd = actual - expected |
849 except IOError, inst: | 850 except IOError, inst: |
850 if inst.errno == errno.ENOENT: | 851 if inst.errno != errno.ENOENT: |
851 return 0 | 852 raise |
852 raise | 853 dd = 0 |
853 | 854 |
854 | 855 try: |
856 f = self.opener(self.indexfile) | |
857 f.seek(0, 2) | |
858 actual = f.tell() | |
859 s = struct.calcsize(indexformat) | |
860 i = actual / s | |
861 di = actual - (i * s) | |
862 except IOError, inst: | |
863 if inst.errno != errno.ENOENT: | |
864 raise | |
865 di = 0 | |
866 | |
867 return (dd, di) | |
868 | |
869 |