92 self._warn(_("warning: `%s' uses revlog format 1") % name) |
92 self._warn(_("warning: `%s' uses revlog format 1") % name) |
93 elif self.revlogv1: |
93 elif self.revlogv1: |
94 self._warn(_("warning: `%s' uses revlog format 0") % name) |
94 self._warn(_("warning: `%s' uses revlog format 0") % name) |
95 |
95 |
96 def checkentry(self, obj, i, node, seen, linkrevs, f): |
96 def checkentry(self, obj, i, node, seen, linkrevs, f): |
|
97 """verify a single revlog entry |
|
98 |
|
99 arguments are: |
|
100 - obj: the source revlog |
|
101 - i: the revision number |
|
102 - node: the revision node id |
|
103 - seen: nodes previously seen for this revlog |
|
104 - linkrevs: [changelog-revisions] introducing "node" |
|
105 - f: string label ("changelog", "manifest", or filename) |
|
106 |
|
107 Performs the following checks: |
|
108 - linkrev points to an existing changelog revision, |
|
109 - linkrev points to a changelog revision that introduces this revision, |
|
110 - linkrev points to the lowest of these changesets, |
|
111 - both parents exist in the revlog, |
|
112 - the revision is not duplicated. |
|
113 |
|
114 Return the linkrev of the revision (or None for changelog's revisions). |
|
115 """ |
97 lr = obj.linkrev(obj.rev(node)) |
116 lr = obj.linkrev(obj.rev(node)) |
98 if lr < 0 or (self.havecl and lr not in linkrevs): |
117 if lr < 0 or (self.havecl and lr not in linkrevs): |
99 if lr < 0 or lr >= len(self.repo.changelog): |
118 if lr < 0 or lr >= len(self.repo.changelog): |
100 msg = _("rev %d points to nonexistent changeset %d") |
119 msg = _("rev %d points to nonexistent changeset %d") |
101 else: |
120 else: |