view contrib/dumprevlog @ 13501:50b825c1adb1 stable

eol: stop after first matched rule in hook (issue2660) When matching a file against the rules in .hgeol, the eol extension's hook should stop after the first matching rule is encountered. Otherwise, if this rule is contradicted by other more general rule (for example a catch-all at the end of .hgeol), some files are simply impossible to push. Trivial example: **.bat = CRLF ** = LF If all matching rules were applied, a .bat file would be rejected either because it has LFs (first rule) or because it has CRLFs (second rule).
author Antoine Pitrou <solipsis@pitrou.net>
date Sun, 27 Feb 2011 19:50:28 +0100
parents 9fe97eea5510
children 659f34b833b9
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.set_binary(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-"