mercurial/debugcommands.py
changeset 37282 009d0283de5f
parent 37143 8bac14ce5778
child 37283 d4e62df1c73d
equal deleted inserted replaced
37281:806b07d7c7d6 37282:009d0283de5f
  1057     r = cmdutil.openrevlog(repo, 'debugindex', file_, opts)
  1057     r = cmdutil.openrevlog(repo, 'debugindex', file_, opts)
  1058     format = opts.get('format', 0)
  1058     format = opts.get('format', 0)
  1059     if format not in (0, 1):
  1059     if format not in (0, 1):
  1060         raise error.Abort(_("unknown format %d") % format)
  1060         raise error.Abort(_("unknown format %d") % format)
  1061 
  1061 
  1062     generaldelta = r.version & revlog.FLAG_GENERALDELTA
       
  1063     if generaldelta:
       
  1064         basehdr = ' delta'
       
  1065     else:
       
  1066         basehdr = '  base'
       
  1067 
       
  1068     if ui.debugflag:
  1062     if ui.debugflag:
  1069         shortfn = hex
  1063         shortfn = hex
  1070     else:
  1064     else:
  1071         shortfn = short
  1065         shortfn = short
  1072 
  1066 
  1075     for i in r:
  1069     for i in r:
  1076         idlen = len(shortfn(r.node(i)))
  1070         idlen = len(shortfn(r.node(i)))
  1077         break
  1071         break
  1078 
  1072 
  1079     if format == 0:
  1073     if format == 0:
  1080         ui.write(("   rev    offset  length " + basehdr + " linkrev"
  1074         ui.write(("   rev    offset  length linkrev"
  1081                  " %s %s p2\n") % ("nodeid".ljust(idlen), "p1".ljust(idlen)))
  1075                  " %s %s p2\n") % ("nodeid".ljust(idlen), "p1".ljust(idlen)))
  1082     elif format == 1:
  1076     elif format == 1:
  1083         ui.write(("   rev flag   offset   length"
  1077         ui.write(("   rev flag   offset   length     size   link     p1     p2"
  1084                  "     size " + basehdr + "   link     p1     p2"
       
  1085                  " %s\n") % "nodeid".rjust(idlen))
  1078                  " %s\n") % "nodeid".rjust(idlen))
  1086 
  1079 
  1087     for i in r:
  1080     for i in r:
  1088         node = r.node(i)
  1081         node = r.node(i)
  1089         if generaldelta:
       
  1090             base = r.deltaparent(i)
       
  1091         else:
       
  1092             base = r.chainbase(i)
       
  1093         if format == 0:
  1082         if format == 0:
  1094             try:
  1083             try:
  1095                 pp = r.parents(node)
  1084                 pp = r.parents(node)
  1096             except Exception:
  1085             except Exception:
  1097                 pp = [nullid, nullid]
  1086                 pp = [nullid, nullid]
  1098             ui.write("% 6d % 9d % 7d % 6d % 7d %s %s %s\n" % (
  1087             ui.write("% 6d % 9d % 7d % 7d %s %s %s\n" % (
  1099                     i, r.start(i), r.length(i), base, r.linkrev(i),
  1088                     i, r.start(i), r.length(i), r.linkrev(i),
  1100                     shortfn(node), shortfn(pp[0]), shortfn(pp[1])))
  1089                     shortfn(node), shortfn(pp[0]), shortfn(pp[1])))
  1101         elif format == 1:
  1090         elif format == 1:
  1102             pr = r.parentrevs(i)
  1091             pr = r.parentrevs(i)
  1103             ui.write("% 6d %04x % 8d % 8d % 8d % 6d % 6d % 6d % 6d %s\n" % (
  1092             ui.write("% 6d %04x % 8d % 8d % 8d % 6d % 6d % 6d %s\n" % (
  1104                     i, r.flags(i), r.start(i), r.length(i), r.rawsize(i),
  1093                     i, r.flags(i), r.start(i), r.length(i), r.rawsize(i),
  1105                     base, r.linkrev(i), pr[0], pr[1], shortfn(node)))
  1094                     r.linkrev(i), pr[0], pr[1], shortfn(node)))
  1106 
  1095 
  1107 @command('debugindexdot', cmdutil.debugrevlogopts,
  1096 @command('debugindexdot', cmdutil.debugrevlogopts,
  1108     _('-c|-m|FILE'), optionalrepo=True)
  1097     _('-c|-m|FILE'), optionalrepo=True)
  1109 def debugindexdot(ui, repo, file_=None, **opts):
  1098 def debugindexdot(ui, repo, file_=None, **opts):
  1110     """dump an index DAG as a graphviz dot file"""
  1099     """dump an index DAG as a graphviz dot file"""