Show More
@@ -1,21 +1,25 | |||
|
1 | 1 | #!/usr/bin/env python |
|
2 | 2 | # Dump revlogs as raw data stream |
|
3 | 3 | # $ find .hg/store/ -name "*.i" | xargs dumprevlog > repo.dump |
|
4 | 4 | |
|
5 | 5 | import sys |
|
6 | from mercurial import revlog, node | |
|
6 | from mercurial import revlog, node, util | |
|
7 | ||
|
8 | for fp in (sys.stdin, sys.stdout, sys.stderr): | |
|
9 | util.set_binary(fp) | |
|
7 | 10 | |
|
8 | 11 | for f in sys.argv[1:]: |
|
9 | r = revlog.revlog(open, f) | |
|
12 | binopen = lambda fn: open(fn, 'rb') | |
|
13 | r = revlog.revlog(binopen, f) | |
|
10 | 14 | print "file:", f |
|
11 | 15 | for i in xrange(r.count()): |
|
12 | 16 | n = r.node(i) |
|
13 | 17 | p = r.parents(n) |
|
14 | 18 | d = r.revision(n) |
|
15 | 19 | print "node:", node.hex(n) |
|
16 | 20 | print "linkrev:", r.linkrev(n) |
|
17 | 21 | print "parents:", node.hex(p[0]), node.hex(p[1]) |
|
18 | 22 | print "length:", len(d) |
|
19 | 23 | print "-start-" |
|
20 | 24 | print d |
|
21 | 25 | print "-end-" |
@@ -1,34 +1,37 | |||
|
1 | 1 | #!/usr/bin/env python |
|
2 | 2 | # Undump a dump from dumprevlog |
|
3 | 3 | # $ hg init |
|
4 | 4 | # $ undumprevlog < repo.dump |
|
5 | 5 | |
|
6 | 6 | import sys |
|
7 | 7 | from mercurial import revlog, node, util, transaction |
|
8 | 8 | |
|
9 | for fp in (sys.stdin, sys.stdout, sys.stderr): | |
|
10 | util.set_binary(fp) | |
|
11 | ||
|
9 | 12 | opener = util.opener('.', False) |
|
10 | 13 | tr = transaction.transaction(sys.stderr.write, opener, "undump.journal") |
|
11 | 14 | while 1: |
|
12 | 15 | l = sys.stdin.readline() |
|
13 | 16 | if not l: |
|
14 | 17 | break |
|
15 | 18 | if l.startswith("file:"): |
|
16 | 19 | f = l[6:-1] |
|
17 | 20 | r = revlog.revlog(opener, f) |
|
18 | 21 | print f |
|
19 | 22 | elif l.startswith("node:"): |
|
20 | 23 | n = node.bin(l[6:-1]) |
|
21 | 24 | elif l.startswith("linkrev:"): |
|
22 | 25 | lr = int(l[9:-1]) |
|
23 | 26 | elif l.startswith("parents:"): |
|
24 | 27 | p = l[9:-1].split() |
|
25 | 28 | p1 = node.bin(p[0]) |
|
26 | 29 | p2 = node.bin(p[1]) |
|
27 | 30 | elif l.startswith("length:"): |
|
28 | 31 | length = int(l[8:-1]) |
|
29 | 32 | sys.stdin.readline() # start marker |
|
30 | 33 | d = sys.stdin.read(length) |
|
31 | 34 | sys.stdin.readline() # end marker |
|
32 | 35 | r.addrevision(d, tr, lr, p1, p2) |
|
33 | 36 | |
|
34 | 37 | tr.close() |
General Comments 0
You need to be logged in to leave comments.
Login now