Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/filelog.py @ 39847:97986c9c69d3
verify: start to abstract file verification
Currently, the file storage interface has a handful of attributes
that are exclusively or near-exclusively used by repo verification
code. In order to support verification on non-revlog/alternate
storage backends, we'll need to abstract verification so it can
be performed in a storage-agnostic way.
This commit starts that process.
We establish a new verifyintegrity() method on revlogs and expose
it to the file storage interface. Most of verify.verifier.checklog()
has been ported to this new method.
We need a way to represent verification problems. So we invent an
interface to represent a verification problem, invent a revlog type
to implement that interface, and use it.
The arguments to verifyintegrity() will almost certainly change in
the future, once more functionality is ported from the verify code.
And the "revlogv1" version check is very hacky. (The code in verify
is actually buggy because it is comparing the full 32-bit header
integer instead of just the revlog version short. I'll likely fix
this in a subsequent commit.)
Differential Revision: https://phab.mercurial-scm.org/D4701
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 19 Sep 2018 11:17:28 -0700 |
parents | 979e9f124caa |
children | 68282a7b29a7 |
comparison
equal
deleted
inserted
replaced
39846:39f51064e9f5 | 39847:97986c9c69d3 |
---|---|
186 if self.renamed(node): | 186 if self.renamed(node): |
187 t2 = self.read(node) | 187 t2 = self.read(node) |
188 return t2 != text | 188 return t2 != text |
189 | 189 |
190 return True | 190 return True |
191 | |
192 def verifyintegrity(self, state): | |
193 return self._revlog.verifyintegrity(state) | |
191 | 194 |
192 # TODO these aren't part of the interface and aren't internal methods. | 195 # TODO these aren't part of the interface and aren't internal methods. |
193 # Callers should be fixed to not use them. | 196 # Callers should be fixed to not use them. |
194 | 197 |
195 # Used by LFS. | 198 # Used by LFS. |