Mercurial > hg
changeset 41870:00c9fde75c1a
verify: document the `checkentry` method
This method checks various core propertes of a revision. We document inputs, outputs
and the checks performed.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 06 Mar 2019 12:18:04 +0100 |
parents | 4da2261e949b |
children | 9e737ca539f6 |
files | mercurial/verify.py |
diffstat | 1 files changed, 19 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/verify.py Wed Mar 06 11:43:21 2019 +0100 +++ b/mercurial/verify.py Wed Mar 06 12:18:04 2019 +0100 @@ -94,6 +94,25 @@ self._warn(_("warning: `%s' uses revlog format 0") % name) def checkentry(self, obj, i, node, seen, linkrevs, f): + """verify a single revlog entry + + arguments are: + - obj: the source revlog + - i: the revision number + - node: the revision node id + - seen: nodes previously seen for this revlog + - linkrevs: [changelog-revisions] introducing "node" + - f: string label ("changelog", "manifest", or filename) + + Performs the following checks: + - linkrev points to an existing changelog revision, + - linkrev points to a changelog revision that introduces this revision, + - linkrev points to the lowest of these changesets, + - both parents exist in the revlog, + - the revision is not duplicated. + + Return the linkrev of the revision (or None for changelog's revisions). + """ lr = obj.linkrev(obj.rev(node)) if lr < 0 or (self.havecl and lr not in linkrevs): if lr < 0 or lr >= len(self.repo.changelog):