--- 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.