contrib/dumprevlog
author Simon Heimberg <simohe@besonet.ch>
Mon, 03 Feb 2014 20:08:58 +0100
changeset 20390 3fedc29a98bb
parent 14233 659f34b833b9
child 29165 a212ca70205c
permissions -rwxr-xr-x
tests: use ls instead of find, all files are in the same directory In this case find has no advantage compared to ls. Descending into directories is unnecessary, because there are none.

#!/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-"