diff mercurial/verify.py @ 6892:dab95717058d

verify: check repo.store
author Adrian Buehlmann <adrian@cadifra.com>
date Wed, 13 Aug 2008 20:18:41 -0500
parents c0bd7d8b69ef
children def492d1b592
line wrap: on
line diff
--- a/mercurial/verify.py	Wed Aug 13 20:18:41 2008 -0500
+++ b/mercurial/verify.py	Wed Aug 13 20:18:41 2008 -0500
@@ -158,9 +158,22 @@
                 err(lr, _("in manifest but not in changeset"), f)
 
     ui.status(_("checking files\n"))
+
+    storefiles = {} 
+    for f, size in repo.store.datafiles(lambda m: err(None, m)):
+        if size > 0:
+            storefiles[f] = True
+
     files = util.sort(util.unique(filenodes.keys() + filelinkrevs.keys()))
     for f in files:
         fl = repo.file(f)
+
+        for ff in fl.files():    
+            try:
+                del storefiles[ff]
+            except KeyError:
+                err(0, _("missing revlog!"), ff)
+
         checklog(fl, f)
         seen = {}
         for i in fl:
@@ -205,6 +218,9 @@
             for lr, node in util.sort(fns):
                 err(lr, _("%s in manifests not found") % short(node), f)
 
+    for f in storefiles:
+        warn(_("warning: orphan revlog '%s'") % f)
+
     ui.status(_("%d files, %d changesets, %d total revisions\n") %
                    (len(files), len(cl), revisions))
     if warnings[0]: