# HG changeset patch # User Gregory Szorc # Date 1434856313 25200 # Node ID 9d1e04f5dca72f39233bc663fd31866c3610f3d3 # Parent 2882d6886919577588a3e782ac8344c18d97ca97 verify: print hint to run debugrebuildfncache Corrupt fncache is now a recoverable operation. Inform the user how to recover from this warning. diff -r 2882d6886919 -r 9d1e04f5dca7 mercurial/verify.py --- 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: diff -r 2882d6886919 -r 9d1e04f5dca7 tests/test-fncache.t --- 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: diff -r 2882d6886919 -r 9d1e04f5dca7 tests/test-verify.t --- 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]