author | Boris Feld <boris.feld@octobus.net> |
Tue, 29 May 2018 18:01:35 +0200 | |
changeset 38343 | 756a7682837f |
parent 37123 | a8a902d7176e |
child 39948 | a063b84ce064 |
permissions | -rwxr-xr-x |
6433
ec5d77eb3431
add simple dump and undump scripts to contrib/
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/env python |
ec5d77eb3431
add simple dump and undump scripts to contrib/
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
2 |
# Dump revlogs as raw data stream |
ec5d77eb3431
add simple dump and undump scripts to contrib/
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
3 |
# $ find .hg/store/ -name "*.i" | xargs dumprevlog > repo.dump |
ec5d77eb3431
add simple dump and undump scripts to contrib/
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
4 |
|
29166
6359b80f15fb
py3: make contrib/dumprevlog use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
29165
diff
changeset
|
5 |
from __future__ import absolute_import, print_function |
29165
a212ca70205c
py3: make contrib/dumprevlog use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
14233
diff
changeset
|
6 |
|
6433
ec5d77eb3431
add simple dump and undump scripts to contrib/
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
7 |
import sys |
29165
a212ca70205c
py3: make contrib/dumprevlog use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
14233
diff
changeset
|
8 |
from mercurial import ( |
a212ca70205c
py3: make contrib/dumprevlog use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
14233
diff
changeset
|
9 |
node, |
a212ca70205c
py3: make contrib/dumprevlog use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
14233
diff
changeset
|
10 |
revlog, |
37123
a8a902d7176e
procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
36003
diff
changeset
|
11 |
) |
a8a902d7176e
procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
36003
diff
changeset
|
12 |
from mercurial.utils import ( |
a8a902d7176e
procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
36003
diff
changeset
|
13 |
procutil, |
29165
a212ca70205c
py3: make contrib/dumprevlog use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
14233
diff
changeset
|
14 |
) |
6466
9c426da6b03b
contrib: fix binary file issues with dumprevlog on Windows
Adrian Buehlmann <adrian@cadifra.com>
parents:
6433
diff
changeset
|
15 |
|
9c426da6b03b
contrib: fix binary file issues with dumprevlog on Windows
Adrian Buehlmann <adrian@cadifra.com>
parents:
6433
diff
changeset
|
16 |
for fp in (sys.stdin, sys.stdout, sys.stderr): |
37123
a8a902d7176e
procutil: bulk-replace function calls to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
36003
diff
changeset
|
17 |
procutil.setbinary(fp) |
6433
ec5d77eb3431
add simple dump and undump scripts to contrib/
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
18 |
|
36003
a915465a731e
dumprevlog: handle being passed a mode parameter
Boris Feld <boris.feld@octobus.net>
parents:
29166
diff
changeset
|
19 |
def binopen(path, mode='rb'): |
a915465a731e
dumprevlog: handle being passed a mode parameter
Boris Feld <boris.feld@octobus.net>
parents:
29166
diff
changeset
|
20 |
if 'b' not in mode: |
a915465a731e
dumprevlog: handle being passed a mode parameter
Boris Feld <boris.feld@octobus.net>
parents:
29166
diff
changeset
|
21 |
mode = mode + 'b' |
a915465a731e
dumprevlog: handle being passed a mode parameter
Boris Feld <boris.feld@octobus.net>
parents:
29166
diff
changeset
|
22 |
return open(path, mode) |
a915465a731e
dumprevlog: handle being passed a mode parameter
Boris Feld <boris.feld@octobus.net>
parents:
29166
diff
changeset
|
23 |
|
6433
ec5d77eb3431
add simple dump and undump scripts to contrib/
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
24 |
for f in sys.argv[1:]: |
6466
9c426da6b03b
contrib: fix binary file issues with dumprevlog on Windows
Adrian Buehlmann <adrian@cadifra.com>
parents:
6433
diff
changeset
|
25 |
r = revlog.revlog(binopen, f) |
29166
6359b80f15fb
py3: make contrib/dumprevlog use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
29165
diff
changeset
|
26 |
print("file:", f) |
6750
fb42030d79d6
add __len__ and __iter__ methods to repo and revlog
Matt Mackall <mpm@selenic.com>
parents:
6466
diff
changeset
|
27 |
for i in r: |
6433
ec5d77eb3431
add simple dump and undump scripts to contrib/
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
28 |
n = r.node(i) |
ec5d77eb3431
add simple dump and undump scripts to contrib/
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
29 |
p = r.parents(n) |
ec5d77eb3431
add simple dump and undump scripts to contrib/
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
30 |
d = r.revision(n) |
29166
6359b80f15fb
py3: make contrib/dumprevlog use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
29165
diff
changeset
|
31 |
print("node:", node.hex(n)) |
6359b80f15fb
py3: make contrib/dumprevlog use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
29165
diff
changeset
|
32 |
print("linkrev:", r.linkrev(i)) |
6359b80f15fb
py3: make contrib/dumprevlog use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
29165
diff
changeset
|
33 |
print("parents:", node.hex(p[0]), node.hex(p[1])) |
6359b80f15fb
py3: make contrib/dumprevlog use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
29165
diff
changeset
|
34 |
print("length:", len(d)) |
6359b80f15fb
py3: make contrib/dumprevlog use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
29165
diff
changeset
|
35 |
print("-start-") |
6359b80f15fb
py3: make contrib/dumprevlog use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
29165
diff
changeset
|
36 |
print(d) |
6359b80f15fb
py3: make contrib/dumprevlog use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
29165
diff
changeset
|
37 |
print("-end-") |