merge with -stable

This commit is contained in:
Benoit Boissinot 2009-04-06 20:11:00 +02:00
commit 309c0e0a31
3 changed files with 37 additions and 2 deletions

View File

@ -460,7 +460,10 @@ class revlog(object):
if self.version == REVLOGV0:
self._io = revlogoldio()
if i:
d = self._io.parseindex(f, self._inline)
try:
d = self._io.parseindex(f, self._inline)
except (ValueError, IndexError), e:
raise RevlogError(_("index %s is corrupted") % (self.indexfile))
self.index, self.nodemap, self._chunkcache = d
# add the magic null revision at -1 (if it hasn't been done already)

View File

@ -1,7 +1,8 @@
#!/bin/sh
echo % prepare repo
hg init
hg init a
cd a
echo "some text" > FOO.txt
echo "another text" > bar.txt
echo "more text" > QUICK.txt
@ -23,4 +24,22 @@ echo
echo % verify
hg verify
cd ..
echo % test revlog corruption
hg init b
cd b
touch a
hg add a
hg ci -m a
echo 'corrupted' > b
head -c 20 .hg/store/data/a.i > start
cat start b > .hg/store/data/a.i
echo
echo % verify
hg verify
exit 0

View File

@ -29,3 +29,16 @@ checking files
3 files, 1 changesets, 0 total revisions
9 integrity errors encountered!
(first damaged changeset appears to be 0)
% test revlog corruption
% verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
a@0: broken revlog! (index data/a.i is corrupted)
warning: orphan revlog 'data/a.i'
1 files, 1 changesets, 0 total revisions
1 warnings encountered!
1 integrity errors encountered!
(first damaged changeset appears to be 0)