comparison mercurial/verify.py @ 25653:9d1e04f5dca7

verify: print hint to run debugrebuildfncache Corrupt fncache is now a recoverable operation. Inform the user how to recover from this warning.
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 20 Jun 2015 20:11:53 -0700
parents 9573d8f346f1
children 328739ea70c3
comparison
equal deleted inserted replaced
25652:2882d6886919 25653:9d1e04f5dca7
217 if not f: 217 if not f:
218 err(None, _("cannot decode filename '%s'") % f2) 218 err(None, _("cannot decode filename '%s'") % f2)
219 elif size > 0 or not revlogv1: 219 elif size > 0 or not revlogv1:
220 storefiles.add(_normpath(f)) 220 storefiles.add(_normpath(f))
221 221
222 fncachewarned = False
222 files = sorted(set(filenodes) | set(filelinkrevs)) 223 files = sorted(set(filenodes) | set(filelinkrevs))
223 total = len(files) 224 total = len(files)
224 for i, f in enumerate(files): 225 for i, f in enumerate(files):
225 ui.progress(_('checking'), i, item=f, total=total) 226 ui.progress(_('checking'), i, item=f, total=total)
226 try: 227 try:
243 for ff in fl.files(): 244 for ff in fl.files():
244 try: 245 try:
245 storefiles.remove(ff) 246 storefiles.remove(ff)
246 except KeyError: 247 except KeyError:
247 warn(_(" warning: revlog '%s' not in fncache!") % ff) 248 warn(_(" warning: revlog '%s' not in fncache!") % ff)
249 fncachewarned = True
248 250
249 checklog(fl, f, lr) 251 checklog(fl, f, lr)
250 seen = {} 252 seen = {}
251 rp = None 253 rp = None
252 for i in fl: 254 for i in fl:
311 313
312 ui.status(_("%d files, %d changesets, %d total revisions\n") % 314 ui.status(_("%d files, %d changesets, %d total revisions\n") %
313 (len(files), len(cl), revisions)) 315 (len(files), len(cl), revisions))
314 if warnings[0]: 316 if warnings[0]:
315 ui.warn(_("%d warnings encountered!\n") % warnings[0]) 317 ui.warn(_("%d warnings encountered!\n") % warnings[0])
318 if fncachewarned:
319 ui.warn(_('hint: run "hg debugrebuildfncache" to recover from '
320 'corrupt fncache\n'))
316 if errors[0]: 321 if errors[0]:
317 ui.warn(_("%d integrity errors encountered!\n") % errors[0]) 322 ui.warn(_("%d integrity errors encountered!\n") % errors[0])
318 if badrevs: 323 if badrevs:
319 ui.warn(_("(first damaged changeset appears to be %d)\n") 324 ui.warn(_("(first damaged changeset appears to be %d)\n")
320 % min(badrevs)) 325 % min(badrevs))