Mercurial > public > mercurial-scm > hg
comparison mercurial/verify.py @ 42155:57539e5ea2e0
verify: introduce a notion of "level"
Some checks are slower than others, to help the user to run the checks he needs,
we are about to introduce new flag to select faster vs deeper runs. This put
the scaffolding in place to do this.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 17 Apr 2019 01:12:21 +0200 |
parents | 9c5a6af74afa |
children | 496ac8a02380 |
comparison
equal
deleted
inserted
replaced
42154:f2fe7cf4ebb6 | 42155:57539e5ea2e0 |
---|---|
20 pycompat, | 20 pycompat, |
21 revlog, | 21 revlog, |
22 util, | 22 util, |
23 ) | 23 ) |
24 | 24 |
25 def verify(repo): | 25 VERIFY_DEFAULT = 0 |
26 | |
27 def verify(repo, level=None): | |
26 with repo.lock(): | 28 with repo.lock(): |
27 return verifier(repo).verify() | 29 v = verifier(repo, level) |
30 return v.verify() | |
28 | 31 |
29 def _normpath(f): | 32 def _normpath(f): |
30 # under hg < 2.4, convert didn't sanitize paths properly, so a | 33 # under hg < 2.4, convert didn't sanitize paths properly, so a |
31 # converted repo may contain repeated slashes | 34 # converted repo may contain repeated slashes |
32 while '//' in f: | 35 while '//' in f: |
33 f = f.replace('//', '/') | 36 f = f.replace('//', '/') |
34 return f | 37 return f |
35 | 38 |
36 class verifier(object): | 39 class verifier(object): |
37 def __init__(self, repo): | 40 def __init__(self, repo, level=None): |
38 self.repo = repo.unfiltered() | 41 self.repo = repo.unfiltered() |
39 self.ui = repo.ui | 42 self.ui = repo.ui |
40 self.match = repo.narrowmatch() | 43 self.match = repo.narrowmatch() |
44 if level is None: | |
45 level = VERIFY_DEFAULT | |
46 self._level = level | |
41 self.badrevs = set() | 47 self.badrevs = set() |
42 self.errors = 0 | 48 self.errors = 0 |
43 self.warnings = 0 | 49 self.warnings = 0 |
44 self.havecl = len(repo.changelog) > 0 | 50 self.havecl = len(repo.changelog) > 0 |
45 self.havemf = len(repo.manifestlog.getstorage(b'')) > 0 | 51 self.havemf = len(repo.manifestlog.getstorage(b'')) > 0 |