dumprevlog
37 lines
| 866 B
| text/plain
|
TextLexer
/ contrib / dumprevlog
Matt Mackall
|
r6433 | #!/usr/bin/env python | ||
# Dump revlogs as raw data stream | ||||
# $ find .hg/store/ -name "*.i" | xargs dumprevlog > repo.dump | ||||
Pulkit Goyal
|
r29166 | from __future__ import absolute_import, print_function | ||
Pulkit Goyal
|
r29165 | |||
Matt Mackall
|
r6433 | import sys | ||
Pulkit Goyal
|
r29165 | from mercurial import ( | ||
node, | ||||
revlog, | ||||
Yuya Nishihara
|
r37138 | ) | ||
from mercurial.utils import ( | ||||
procutil, | ||||
Pulkit Goyal
|
r29165 | ) | ||
Adrian Buehlmann
|
r6466 | |||
for fp in (sys.stdin, sys.stdout, sys.stderr): | ||||
Yuya Nishihara
|
r37138 | procutil.setbinary(fp) | ||
Matt Mackall
|
r6433 | |||
Boris Feld
|
r35982 | def binopen(path, mode='rb'): | ||
if 'b' not in mode: | ||||
mode = mode + 'b' | ||||
return open(path, mode) | ||||
Matt Mackall
|
r6433 | for f in sys.argv[1:]: | ||
Adrian Buehlmann
|
r6466 | r = revlog.revlog(binopen, f) | ||
Pulkit Goyal
|
r29166 | print("file:", f) | ||
Matt Mackall
|
r6750 | for i in r: | ||
Matt Mackall
|
r6433 | n = r.node(i) | ||
p = r.parents(n) | ||||
d = r.revision(n) | ||||
Pulkit Goyal
|
r29166 | 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-") | ||||