hgext/remotefilelog/debugcommands.py
changeset 47012 d55b71393907
parent 46113 59fa3890d40a
child 48875 6000f5b25c9b
equal deleted inserted replaced
46992:5fa019ceb499 47012:d55b71393907
    10 import zlib
    10 import zlib
    11 
    11 
    12 from mercurial.node import (
    12 from mercurial.node import (
    13     bin,
    13     bin,
    14     hex,
    14     hex,
    15     nullid,
    15     sha1nodeconstants,
    16     short,
    16     short,
    17 )
    17 )
    18 from mercurial.i18n import _
    18 from mercurial.i18n import _
    19 from mercurial.pycompat import open
    19 from mercurial.pycompat import open
    20 from mercurial import (
    20 from mercurial import (
    55         p1, p2, linknode, copyfrom = mapping[node]
    55         p1, p2, linknode, copyfrom = mapping[node]
    56         ui.status(
    56         ui.status(
    57             _(b"%s => %s  %s  %s  %s\n")
    57             _(b"%s => %s  %s  %s  %s\n")
    58             % (short(node), short(p1), short(p2), short(linknode), copyfrom)
    58             % (short(node), short(p1), short(p2), short(linknode), copyfrom)
    59         )
    59         )
    60         if p1 != nullid:
    60         if p1 != sha1nodeconstants.nullid:
    61             queue.append(p1)
    61             queue.append(p1)
    62         if p2 != nullid:
    62         if p2 != sha1nodeconstants.nullid:
    63             queue.append(p2)
    63             queue.append(p2)
    64 
    64 
    65 
    65 
    66 def buildtemprevlog(repo, file):
    66 def buildtemprevlog(repo, file):
    67     # get filename key
    67     # get filename key
   150             base = r.chainbase(i)
   150             base = r.chainbase(i)
   151         if format == 0:
   151         if format == 0:
   152             try:
   152             try:
   153                 pp = r.parents(node)
   153                 pp = r.parents(node)
   154             except Exception:
   154             except Exception:
   155                 pp = [nullid, nullid]
   155                 pp = [repo.nullid, repo.nullid]
   156             ui.write(
   156             ui.write(
   157                 b"% 6d % 9d % 7d % 6d % 7d %s %s %s\n"
   157                 b"% 6d % 9d % 7d % 6d % 7d %s %s %s\n"
   158                 % (
   158                 % (
   159                     i,
   159                     i,
   160                     r.start(i),
   160                     r.start(i),
   195     ui.writenoi18n(b"digraph G {\n")
   195     ui.writenoi18n(b"digraph G {\n")
   196     for i in r:
   196     for i in r:
   197         node = r.node(i)
   197         node = r.node(i)
   198         pp = r.parents(node)
   198         pp = r.parents(node)
   199         ui.write(b"\t%d -> %d\n" % (r.rev(pp[0]), i))
   199         ui.write(b"\t%d -> %d\n" % (r.rev(pp[0]), i))
   200         if pp[1] != nullid:
   200         if pp[1] != repo.nullid:
   201             ui.write(b"\t%d -> %d\n" % (r.rev(pp[1]), i))
   201             ui.write(b"\t%d -> %d\n" % (r.rev(pp[1]), i))
   202     ui.write(b"}\n")
   202     ui.write(b"}\n")
   203 
   203 
   204 
   204 
   205 def verifyremotefilelog(ui, path, **opts):
   205 def verifyremotefilelog(ui, path, **opts):
   210             if file == b"repos":
   210             if file == b"repos":
   211                 continue
   211                 continue
   212             filepath = os.path.join(root, file)
   212             filepath = os.path.join(root, file)
   213             size, firstnode, mapping = parsefileblob(filepath, decompress)
   213             size, firstnode, mapping = parsefileblob(filepath, decompress)
   214             for p1, p2, linknode, copyfrom in pycompat.itervalues(mapping):
   214             for p1, p2, linknode, copyfrom in pycompat.itervalues(mapping):
   215                 if linknode == nullid:
   215                 if linknode == sha1nodeconstants.nullid:
   216                     actualpath = os.path.relpath(root, path)
   216                     actualpath = os.path.relpath(root, path)
   217                     key = fileserverclient.getcachekey(
   217                     key = fileserverclient.getcachekey(
   218                         b"reponame", actualpath, file
   218                         b"reponame", actualpath, file
   219                     )
   219                     )
   220                     ui.status(
   220                     ui.status(
   369     for node in nodes:
   369     for node in nodes:
   370         seen = set()
   370         seen = set()
   371         current = node
   371         current = node
   372         deltabase = bases[current]
   372         deltabase = bases[current]
   373 
   373 
   374         while deltabase != nullid:
   374         while deltabase != sha1nodeconstants.nullid:
   375             if deltabase not in nodes:
   375             if deltabase not in nodes:
   376                 ui.warn(
   376                 ui.warn(
   377                     (
   377                     (
   378                         b"Bad entry: %s has an unknown deltabase (%s)\n"
   378                         b"Bad entry: %s has an unknown deltabase (%s)\n"
   379                         % (short(node), short(deltabase))
   379                         % (short(node), short(deltabase))
   395             current = deltabase
   395             current = deltabase
   396             seen.add(current)
   396             seen.add(current)
   397             deltabase = bases[current]
   397             deltabase = bases[current]
   398         # Since ``node`` begins a valid chain, reset/memoize its base to nullid
   398         # Since ``node`` begins a valid chain, reset/memoize its base to nullid
   399         # so we don't traverse it again.
   399         # so we don't traverse it again.
   400         bases[node] = nullid
   400         bases[node] = sha1nodeconstants.nullid
   401     return failures
   401     return failures
   402 
   402 
   403 
   403 
   404 def dumpdeltachain(ui, deltachain, **opts):
   404 def dumpdeltachain(ui, deltachain, **opts):
   405     hashformatter = hex
   405     hashformatter = hex