view contrib/dumprevlog @ 23973:18d431147cc1 stable

obsstore: make the invalid markers check wrap-able Some evolve user ignored the invalid markers for about two years and still have some of them in some repository. This lead to plain abort whenever mercurial try to open such repo. We need reinstall some way to clean this up in the evolve extension. For this purpose, we need the checker code wrap-able independently. This is scheduled for stable as this issue is blocking some evolve user.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Fri, 30 Jan 2015 18:49:33 +0000
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-"