Mercurial > public > mercurial-scm > hg
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: |