Show More
@@ -27,6 +27,7 b' def _verify(repo):' | |||||
27 | ui = repo.ui |
|
27 | ui = repo.ui | |
28 | cl = repo.changelog |
|
28 | cl = repo.changelog | |
29 | mf = repo.manifest |
|
29 | mf = repo.manifest | |
|
30 | lrugetctx = util.lrucachefunc(repo.changectx) | |||
30 |
|
31 | |||
31 | if not repo.cancopy(): |
|
32 | if not repo.cancopy(): | |
32 | raise util.Abort(_("cannot verify bundle or remote repos")) |
|
33 | raise util.Abort(_("cannot verify bundle or remote repos")) | |
@@ -78,6 +79,13 b' def _verify(repo):' | |||||
78 | msg = _("rev %d points to unexpected changeset %d") |
|
79 | msg = _("rev %d points to unexpected changeset %d") | |
79 | err(None, msg % (i, lr), f) |
|
80 | err(None, msg % (i, lr), f) | |
80 | if linkrevs: |
|
81 | if linkrevs: | |
|
82 | if f and len(linkrevs) > 1: | |||
|
83 | try: | |||
|
84 | # attempt to filter down to real linkrevs | |||
|
85 | linkrevs = [l for l in linkrevs | |||
|
86 | if lrugetctx(l)[f].filenode() == node] | |||
|
87 | except: | |||
|
88 | pass | |||
81 | warn(_(" (expected %s)") % " ".join(map(str, linkrevs))) |
|
89 | warn(_(" (expected %s)") % " ".join(map(str, linkrevs))) | |
82 | lr = None # can't be trusted |
|
90 | lr = None # can't be trusted | |
83 |
|
91 | |||
@@ -136,9 +144,7 b' def _verify(repo):' | |||||
136 | if not f: |
|
144 | if not f: | |
137 | err(lr, _("file without name in manifest")) |
|
145 | err(lr, _("file without name in manifest")) | |
138 | elif f != "/dev/null": |
|
146 | elif f != "/dev/null": | |
139 |
|
|
147 | filenodes.setdefault(f, {}).setdefault(fn, lr) | |
140 | if fn not in fns: |
|
|||
141 | fns[fn] = i |
|
|||
142 | except Exception, inst: |
|
148 | except Exception, inst: | |
143 | exc(lr, _("reading manifest delta %s") % short(n), inst) |
|
149 | exc(lr, _("reading manifest delta %s") % short(n), inst) | |
144 |
|
150 | |||
@@ -173,7 +179,6 b' def _verify(repo):' | |||||
173 | elif size > 0: |
|
179 | elif size > 0: | |
174 | storefiles.add(f) |
|
180 | storefiles.add(f) | |
175 |
|
181 | |||
176 | lrugetctx = util.lrucachefunc(repo.changectx) |
|
|||
177 | files = sorted(set(filenodes) | set(filelinkrevs)) |
|
182 | files = sorted(set(filenodes) | set(filelinkrevs)) | |
178 | for f in files: |
|
183 | for f in files: | |
179 | try: |
|
184 | try: | |
@@ -250,7 +255,7 b' def _verify(repo):' | |||||
250 |
|
255 | |||
251 | # cross-check |
|
256 | # cross-check | |
252 | if f in filenodes: |
|
257 | if f in filenodes: | |
253 |
fns = [( |
|
258 | fns = [(lr, n) for n,lr in filenodes[f].iteritems()] | |
254 | for lr, node in sorted(fns): |
|
259 | for lr, node in sorted(fns): | |
255 | err(lr, _("%s in manifests not found") % short(node), f) |
|
260 | err(lr, _("%s in manifests not found") % short(node), f) | |
256 |
|
261 |
General Comments 0
You need to be logged in to leave comments.
Login now