contrib/dumprevlog
author Gregory Szorc <gregory.szorc@gmail.com>
Tue, 22 Apr 2014 12:20:10 -0700
changeset 21518 8e8049b9bda4
parent 14233 659f34b833b9
child 29165 a212ca70205c
permissions -rwxr-xr-x
run-tests: remove options from Test.__init__ All options are now passed as arguments and we no longer need options. This enables us to instantiate Test from "plain old data" types. Since options must be given as arguments, it also makes people think harder about adding things that may not belong in Test. This will help ensure a proper separation of responsibility going forward.

#!/usr/bin/env python
# Dump revlogs as raw data stream
# $ find .hg/store/ -name "*.i" | xargs dumprevlog > repo.dump

import sys
from mercurial import revlog, node, util

for fp in (sys.stdin, sys.stdout, sys.stderr):
    util.setbinary(fp)

for f in sys.argv[1:]:
    binopen = lambda fn: open(fn, 'rb')
    r = revlog.revlog(binopen, f)
    print "file:", f
    for i in r:
        n = r.node(i)
        p = r.parents(n)
        d = r.revision(n)
        print "node:", node.hex(n)
        print "linkrev:", r.linkrev(i)
        print "parents:", node.hex(p[0]), node.hex(p[1])
        print "length:", len(d)
        print "-start-"
        print d
        print "-end-"