mercurial/verify.py
changeset 7361 9fe97eea5510
parent 7141 8d1bdaf842de
child 7622 4dd7b28003d2
child 7675 011e69b96c69
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"))