Mercurial > hg
changeset 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 | 2882d6886919 |
children | af329a84310c |
files | mercurial/verify.py tests/test-fncache.t tests/test-verify.t |
diffstat | 3 files changed, 23 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/verify.py Mon Jun 22 09:59:48 2015 -0700 +++ b/mercurial/verify.py Sat Jun 20 20:11:53 2015 -0700 @@ -219,6 +219,7 @@ elif size > 0 or not revlogv1: storefiles.add(_normpath(f)) + fncachewarned = False files = sorted(set(filenodes) | set(filelinkrevs)) total = len(files) for i, f in enumerate(files): @@ -245,6 +246,7 @@ storefiles.remove(ff) except KeyError: warn(_(" warning: revlog '%s' not in fncache!") % ff) + fncachewarned = True checklog(fl, f, lr) seen = {} @@ -313,6 +315,9 @@ (len(files), len(cl), revisions)) if warnings[0]: ui.warn(_("%d warnings encountered!\n") % warnings[0]) + if fncachewarned: + ui.warn(_('hint: run "hg debugrebuildfncache" to recover from ' + 'corrupt fncache\n')) if errors[0]: ui.warn(_("%d integrity errors encountered!\n") % errors[0]) if badrevs:
--- a/tests/test-fncache.t Mon Jun 22 09:59:48 2015 -0700 +++ b/tests/test-fncache.t Sat Jun 20 20:11:53 2015 -0700 @@ -53,6 +53,23 @@ warning: revlog 'data/a.i/b.i' not in fncache! 3 files, 3 changesets, 3 total revisions 3 warnings encountered! + hint: run "hg debugrebuildfncache" to recover from corrupt fncache + +Follow the hint to make sure it works + + $ hg debugrebuildfncache + adding data/a.i + adding data/a.i.hg/c.i + adding data/a.i/b.i + 3 items added, 0 removed from fncache + + $ hg verify + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + 3 files, 3 changesets, 3 total revisions + $ cd .. Non store repo:
--- a/tests/test-verify.t Mon Jun 22 09:59:48 2015 -0700 +++ b/tests/test-verify.t Sat Jun 20 20:11:53 2015 -0700 @@ -55,6 +55,7 @@ bar.txt@0: 256559129457 in manifests not found 3 files, 1 changesets, 0 total revisions 3 warnings encountered! + hint: run "hg debugrebuildfncache" to recover from corrupt fncache 6 integrity errors encountered! (first damaged changeset appears to be 0) [1]