mercurial/repository.py
changeset 39847 97986c9c69d3
parent 39801 979e9f124caa
child 39848 68282a7b29a7
--- a/mercurial/repository.py	Mon Sep 24 08:58:57 2018 -0700
+++ b/mercurial/repository.py	Wed Sep 19 11:17:28 2018 -0700
@@ -318,6 +318,20 @@
             _('cannot %s; remote repository does not support the %r '
               'capability') % (purpose, name))
 
+class iverifyproblem(interfaceutil.Interface):
+    """Represents a problem with the integrity of the repository.
+
+    Instances of this interface are emitted to describe an integrity issue
+    with a repository (e.g. corrupt storage, missing data, etc).
+
+    Instances are essentially messages associated with severity.
+    """
+    warning = interfaceutil.Attribute(
+        """Message indicating a non-fatal problem.""")
+
+    error = interfaceutil.Attribute(
+        """Message indicating a fatal problem.""")
+
 class irevisiondelta(interfaceutil.Interface):
     """Represents a delta between one revision and another.
 
@@ -749,6 +763,17 @@
         TODO this is used by verify and it should not be part of the interface.
         """
 
+    def verifyintegrity(state):
+        """Verifies the integrity of file storage.
+
+        ``state`` is a dict holding state of the verifier process. It can be
+        used to communicate data between invocations of multiple storage
+        primitives.
+
+        The method yields objects conforming to the ``iverifyproblem``
+        interface.
+        """
+
 class idirs(interfaceutil.Interface):
     """Interface representing a collection of directories from paths.