comparison mercurial/verify.py @ 7361:9fe97eea5510

linkrev: take a revision number rather than a hash
author Matt Mackall <mpm@selenic.com>
date Wed, 12 Nov 2008 15:19:14 -0600
parents 8d1bdaf842de
children 4dd7b28003d2 011e69b96c69
comparison
equal deleted inserted replaced
7360:42f1b8cb9a60 7361:9fe97eea5510
68 warn(_("warning: `%s' uses revlog format 1") % name) 68 warn(_("warning: `%s' uses revlog format 1") % name)
69 elif revlogv1: 69 elif revlogv1:
70 warn(_("warning: `%s' uses revlog format 0") % name) 70 warn(_("warning: `%s' uses revlog format 0") % name)
71 71
72 def checkentry(obj, i, node, seen, linkrevs, f): 72 def checkentry(obj, i, node, seen, linkrevs, f):
73 lr = obj.linkrev(node) 73 lr = obj.linkrev(obj.rev(node))
74 if lr < 0 or (havecl and lr not in linkrevs): 74 if lr < 0 or (havecl and lr not in linkrevs):
75 t = "unexpected" 75 t = "unexpected"
76 if lr < 0 or lr >= len(cl): 76 if lr < 0 or lr >= len(cl):
77 t = "nonexistent" 77 t = "nonexistent"
78 err(None, _("rev %d point to %s changeset %d") % (i, t, lr), f) 78 err(None, _("rev %d point to %s changeset %d") % (i, t, lr), f)
133 if not f: 133 if not f:
134 err(lr, _("file without name in manifest")) 134 err(lr, _("file without name in manifest"))
135 elif f != "/dev/null": 135 elif f != "/dev/null":
136 fns = filenodes.setdefault(f, {}) 136 fns = filenodes.setdefault(f, {})
137 if fn not in fns: 137 if fn not in fns:
138 fns[fn] = n 138 fns[fn] = i
139 except Exception, inst: 139 except Exception, inst:
140 exc(lr, _("reading manifest delta %s") % short(n), inst) 140 exc(lr, _("reading manifest delta %s") % short(n), inst)
141 141
142 ui.status(_("crosschecking files in changesets and manifests\n")) 142 ui.status(_("crosschecking files in changesets and manifests\n"))
143 143
153 153
154 if havecl: 154 if havecl:
155 for f in util.sort(filenodes): 155 for f in util.sort(filenodes):
156 if f not in filelinkrevs: 156 if f not in filelinkrevs:
157 try: 157 try:
158 lr = min([repo.file(f).linkrev(n) for n in filenodes[f]]) 158 fl = repo.file(f)
159 lr = min([fl.linkrev(fl.rev(n)) for n in filenodes[f]])
159 except: 160 except:
160 lr = None 161 lr = None
161 err(lr, _("in manifest but not in changeset"), f) 162 err(lr, _("in manifest but not in changeset"), f)
162 163
163 ui.status(_("checking files\n")) 164 ui.status(_("checking files\n"))