comparison mercurial/verify.py @ 7832:1fce19b9b011

verify: do not abort on fully corrupted revlog
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Sat, 07 Mar 2009 20:04:56 +0100
parents 43cfbb21f04d
children 794def2fe232
comparison
equal deleted inserted replaced
7831:b5ed0ab8cc74 7832:1fce19b9b011
5 # This software may be used and distributed according to the terms 5 # This software may be used and distributed according to the terms
6 # of the GNU General Public License, incorporated herein by reference. 6 # of the GNU General Public License, incorporated herein by reference.
7 7
8 from node import nullid, short 8 from node import nullid, short
9 from i18n import _ 9 from i18n import _
10 import revlog, util 10 import revlog, util, error
11 11
12 def verify(repo): 12 def verify(repo):
13 lock = repo.lock() 13 lock = repo.lock()
14 try: 14 try:
15 return _verify(repo) 15 return _verify(repo)
170 elif size > 0: 170 elif size > 0:
171 storefiles[f] = True 171 storefiles[f] = True
172 172
173 files = util.sort(util.unique(filenodes.keys() + filelinkrevs.keys())) 173 files = util.sort(util.unique(filenodes.keys() + filelinkrevs.keys()))
174 for f in files: 174 for f in files:
175 fl = repo.file(f) 175 try:
176 fl = repo.file(f)
177 except error.RevlogError, e:
178 err(0, _("broken revlog! (%s)") % e, f)
179 continue
176 180
177 for ff in fl.files(): 181 for ff in fl.files():
178 try: 182 try:
179 del storefiles[ff] 183 del storefiles[ff]
180 except KeyError: 184 except KeyError: