mercurial/verify.py
changeset 42157 7755b89cadaf
parent 42156 496ac8a02380
child 42387 91452f62dd53
--- a/mercurial/verify.py	Wed Apr 17 01:11:09 2019 +0200
+++ b/mercurial/verify.py	Wed Mar 06 15:06:53 2019 +0100
@@ -337,6 +337,16 @@
                         filenodes.setdefault(fullpath, {}).setdefault(fn, lr)
             except Exception as inst:
                 self._exc(lr, _("reading delta %s") % short(n), inst, label)
+            if self._level >= VERIFY_FULL:
+                try:
+                    # Various issues can affect manifest. So we read each full
+                    # text from storage. This triggers the checks from the core
+                    # code (eg: hash verification, filename are ordered, etc.)
+                    mfdelta = mfl.get(dir, n).read()
+                except Exception as inst:
+                    self._exc(lr, _("reading full manifest %s") % short(n),
+                              inst, label)
+
         if not dir:
             progress.complete()