view contrib/dumprevlog @ 14248:25c68ac247c1

match: make 'listfile:' split on LF and CRLF We want util.readfile() to operate in binary mode, so EOLs have to be handled correctly depending on the platform. It seems both easier and more convenient to treat LF and CRLF the same way on all platforms.
author Patrick Mezard <pmezard@gmail.com>
date Sat, 07 May 2011 21:12:30 +0200
parents 659f34b833b9
children a212ca70205c
line wrap: on
line source

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