Mercurial > public > mercurial-scm > hg
comparison mercurial/verify.py @ 41862:c66037fb1bc5
verify: make the `warn` method private
The method is for internal use only. Let us make that fact clearer.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 06 Mar 2019 11:24:40 +0100 |
parents | a58748300e61 |
children | 9534f3cb6b6c |
comparison
equal
deleted
inserted
replaced
41861:a58748300e61 | 41862:c66037fb1bc5 |
---|---|
49 self.fncachewarned = False | 49 self.fncachewarned = False |
50 # developer config: verify.skipflags | 50 # developer config: verify.skipflags |
51 self.skipflags = repo.ui.configint('verify', 'skipflags') | 51 self.skipflags = repo.ui.configint('verify', 'skipflags') |
52 self.warnorphanstorefiles = True | 52 self.warnorphanstorefiles = True |
53 | 53 |
54 def warn(self, msg): | 54 def _warn(self, msg): |
55 """record a "warning" level issue""" | 55 """record a "warning" level issue""" |
56 self.ui.warn(msg + "\n") | 56 self.ui.warn(msg + "\n") |
57 self.warnings += 1 | 57 self.warnings += 1 |
58 | 58 |
59 def err(self, linkrev, msg, filename=None): | 59 def err(self, linkrev, msg, filename=None): |
85 if d[1]: | 85 if d[1]: |
86 self.err(None, _("index contains %d extra bytes") % d[1], name) | 86 self.err(None, _("index contains %d extra bytes") % d[1], name) |
87 | 87 |
88 if obj.version != revlog.REVLOGV0: | 88 if obj.version != revlog.REVLOGV0: |
89 if not self.revlogv1: | 89 if not self.revlogv1: |
90 self.warn(_("warning: `%s' uses revlog format 1") % name) | 90 self._warn(_("warning: `%s' uses revlog format 1") % name) |
91 elif self.revlogv1: | 91 elif self.revlogv1: |
92 self.warn(_("warning: `%s' uses revlog format 0") % name) | 92 self._warn(_("warning: `%s' uses revlog format 0") % name) |
93 | 93 |
94 def checkentry(self, obj, i, node, seen, linkrevs, f): | 94 def checkentry(self, obj, i, node, seen, linkrevs, f): |
95 lr = obj.linkrev(obj.rev(node)) | 95 lr = obj.linkrev(obj.rev(node)) |
96 if lr < 0 or (self.havecl and lr not in linkrevs): | 96 if lr < 0 or (self.havecl and lr not in linkrevs): |
97 if lr < 0 or lr >= len(self.repo.changelog): | 97 if lr < 0 or lr >= len(self.repo.changelog): |
105 # attempt to filter down to real linkrevs | 105 # attempt to filter down to real linkrevs |
106 linkrevs = [l for l in linkrevs | 106 linkrevs = [l for l in linkrevs |
107 if self.lrugetctx(l)[f].filenode() == node] | 107 if self.lrugetctx(l)[f].filenode() == node] |
108 except Exception: | 108 except Exception: |
109 pass | 109 pass |
110 self.warn(_(" (expected %s)") % " ".join | 110 self._warn(_(" (expected %s)") % " ".join |
111 (map(pycompat.bytestr, linkrevs))) | 111 (map(pycompat.bytestr, linkrevs))) |
112 lr = None # can't be trusted | 112 lr = None # can't be trusted |
113 | 113 |
114 try: | 114 try: |
115 p1, p2 = obj.parents(node) | 115 p1, p2 = obj.parents(node) |
116 if p1 not in seen and p1 != nullid: | 116 if p1 not in seen and p1 != nullid: |
291 | 291 |
292 if not dir and subdirnodes: | 292 if not dir and subdirnodes: |
293 subdirprogress.complete() | 293 subdirprogress.complete() |
294 if self.warnorphanstorefiles: | 294 if self.warnorphanstorefiles: |
295 for f in sorted(storefiles): | 295 for f in sorted(storefiles): |
296 self.warn(_("warning: orphan data file '%s'") % f) | 296 self._warn(_("warning: orphan data file '%s'") % f) |
297 | 297 |
298 return filenodes | 298 return filenodes |
299 | 299 |
300 def _crosscheckfiles(self, filelinkrevs, filenodes): | 300 def _crosscheckfiles(self, filelinkrevs, filenodes): |
301 repo = self.repo | 301 repo = self.repo |
374 for ff in fl.files(): | 374 for ff in fl.files(): |
375 try: | 375 try: |
376 storefiles.remove(ff) | 376 storefiles.remove(ff) |
377 except KeyError: | 377 except KeyError: |
378 if self.warnorphanstorefiles: | 378 if self.warnorphanstorefiles: |
379 self.warn(_(" warning: revlog '%s' not in fncache!") % | 379 self._warn(_(" warning: revlog '%s' not in fncache!") % |
380 ff) | 380 ff) |
381 self.fncachewarned = True | 381 self.fncachewarned = True |
382 | 382 |
383 if not len(fl) and (self.havecl or self.havemf): | 383 if not len(fl) and (self.havecl or self.havemf): |
384 self.err(lr, _("empty or missing %s") % f) | 384 self.err(lr, _("empty or missing %s") % f) |
390 linkrev = fl.linkrev(fl.rev(problem.node)) | 390 linkrev = fl.linkrev(fl.rev(problem.node)) |
391 else: | 391 else: |
392 linkrev = None | 392 linkrev = None |
393 | 393 |
394 if problem.warning: | 394 if problem.warning: |
395 self.warn(problem.warning) | 395 self._warn(problem.warning) |
396 elif problem.error: | 396 elif problem.error: |
397 self.err(linkrev if linkrev is not None else lr, | 397 self.err(linkrev if linkrev is not None else lr, |
398 problem.error, f) | 398 problem.error, f) |
399 else: | 399 else: |
400 raise error.ProgrammingError( | 400 raise error.ProgrammingError( |
423 rp = fl.renamed(n) | 423 rp = fl.renamed(n) |
424 if rp: | 424 if rp: |
425 if lr is not None and ui.verbose: | 425 if lr is not None and ui.verbose: |
426 ctx = lrugetctx(lr) | 426 ctx = lrugetctx(lr) |
427 if not any(rp[0] in pctx for pctx in ctx.parents()): | 427 if not any(rp[0] in pctx for pctx in ctx.parents()): |
428 self.warn(_("warning: copy source of '%s' not" | 428 self._warn(_("warning: copy source of '%s' not" |
429 " in parents of %s") % (f, ctx)) | 429 " in parents of %s") % (f, ctx)) |
430 fl2 = repo.file(rp[0]) | 430 fl2 = repo.file(rp[0]) |
431 if not len(fl2): | 431 if not len(fl2): |
432 self.err(lr, _("empty or missing copy source " | 432 self.err(lr, _("empty or missing copy source " |
433 "revlog %s:%s") % (rp[0], short(rp[1])), f) | 433 "revlog %s:%s") % (rp[0], short(rp[1])), f) |
448 short(node), f) | 448 short(node), f) |
449 progress.complete() | 449 progress.complete() |
450 | 450 |
451 if self.warnorphanstorefiles: | 451 if self.warnorphanstorefiles: |
452 for f in sorted(storefiles): | 452 for f in sorted(storefiles): |
453 self.warn(_("warning: orphan data file '%s'") % f) | 453 self._warn(_("warning: orphan data file '%s'") % f) |
454 | 454 |
455 return len(files), revisions | 455 return len(files), revisions |