mercurial/verify.py
changeset 27445 cc178057ab49
parent 27444 6647401858ab
child 27446 6b2c1a1871a6
equal deleted inserted replaced
27444:6647401858ab 27445:cc178057ab49
    56         self.havecl = len(repo.changelog) > 0
    56         self.havecl = len(repo.changelog) > 0
    57         self.havemf = len(repo.manifest) > 0
    57         self.havemf = len(repo.manifest) > 0
    58         self.revlogv1 = repo.changelog.version != revlog.REVLOGV0
    58         self.revlogv1 = repo.changelog.version != revlog.REVLOGV0
    59         self.lrugetctx = util.lrucachefunc(repo.changectx)
    59         self.lrugetctx = util.lrucachefunc(repo.changectx)
    60         self.refersmf = False
    60         self.refersmf = False
       
    61         self.fncachewarned = False
    61 
    62 
    62     def verify(self):
    63     def verify(self):
    63         repo = self.repo
    64         repo = self.repo
    64         mflinkrevs = {}
    65         mflinkrevs = {}
    65         filelinkrevs = {}
    66         filelinkrevs = {}
   254             if not f:
   255             if not f:
   255                 err(None, _("cannot decode filename '%s'") % f2)
   256                 err(None, _("cannot decode filename '%s'") % f2)
   256             elif size > 0 or not revlogv1:
   257             elif size > 0 or not revlogv1:
   257                 storefiles.add(_normpath(f))
   258                 storefiles.add(_normpath(f))
   258 
   259 
   259         fncachewarned = False
       
   260         files = sorted(set(filenodes) | set(filelinkrevs))
   260         files = sorted(set(filenodes) | set(filelinkrevs))
   261         total = len(files)
   261         total = len(files)
   262         for i, f in enumerate(files):
   262         for i, f in enumerate(files):
   263             ui.progress(_('checking'), i, item=f, total=total)
   263             ui.progress(_('checking'), i, item=f, total=total)
   264             try:
   264             try:
   281             for ff in fl.files():
   281             for ff in fl.files():
   282                 try:
   282                 try:
   283                     storefiles.remove(ff)
   283                     storefiles.remove(ff)
   284                 except KeyError:
   284                 except KeyError:
   285                     warn(_(" warning: revlog '%s' not in fncache!") % ff)
   285                     warn(_(" warning: revlog '%s' not in fncache!") % ff)
   286                     fncachewarned = True
   286                     self.fncachewarned = True
   287 
   287 
   288             checklog(fl, f, lr)
   288             checklog(fl, f, lr)
   289             seen = {}
   289             seen = {}
   290             rp = None
   290             rp = None
   291             for i in fl:
   291             for i in fl:
   351 
   351 
   352         ui.status(_("%d files, %d changesets, %d total revisions\n") %
   352         ui.status(_("%d files, %d changesets, %d total revisions\n") %
   353                        (len(files), len(cl), revisions))
   353                        (len(files), len(cl), revisions))
   354         if warnings[0]:
   354         if warnings[0]:
   355             ui.warn(_("%d warnings encountered!\n") % warnings[0])
   355             ui.warn(_("%d warnings encountered!\n") % warnings[0])
   356         if fncachewarned:
   356         if self.fncachewarned:
   357             ui.warn(_('hint: run "hg debugrebuildfncache" to recover from '
   357             ui.warn(_('hint: run "hg debugrebuildfncache" to recover from '
   358                       'corrupt fncache\n'))
   358                       'corrupt fncache\n'))
   359         if errors[0]:
   359         if errors[0]:
   360             ui.warn(_("%d integrity errors encountered!\n") % errors[0])
   360             ui.warn(_("%d integrity errors encountered!\n") % errors[0])
   361             if badrevs:
   361             if badrevs: