mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
083299a68b
Now that the 'vfs' classes moved in their own module, lets use the new module directly. We update code iteratively to help with possible bisect needs in the future.
47 lines
1.1 KiB
Python
Executable File
47 lines
1.1 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# Undump a dump from dumprevlog
|
|
# $ hg init
|
|
# $ undumprevlog < repo.dump
|
|
|
|
from __future__ import absolute_import
|
|
|
|
import sys
|
|
from mercurial import (
|
|
node,
|
|
revlog,
|
|
transaction,
|
|
util,
|
|
vfs as vfsmod,
|
|
)
|
|
|
|
for fp in (sys.stdin, sys.stdout, sys.stderr):
|
|
util.setbinary(fp)
|
|
|
|
opener = vfsmod.vfs('.', False)
|
|
tr = transaction.transaction(sys.stderr.write, opener, {'store': opener},
|
|
"undump.journal")
|
|
while True:
|
|
l = sys.stdin.readline()
|
|
if not l:
|
|
break
|
|
if l.startswith("file:"):
|
|
f = l[6:-1]
|
|
r = revlog.revlog(opener, f)
|
|
print f
|
|
elif l.startswith("node:"):
|
|
n = node.bin(l[6:-1])
|
|
elif l.startswith("linkrev:"):
|
|
lr = int(l[9:-1])
|
|
elif l.startswith("parents:"):
|
|
p = l[9:-1].split()
|
|
p1 = node.bin(p[0])
|
|
p2 = node.bin(p[1])
|
|
elif l.startswith("length:"):
|
|
length = int(l[8:-1])
|
|
sys.stdin.readline() # start marker
|
|
d = sys.stdin.read(length)
|
|
sys.stdin.readline() # end marker
|
|
r.addrevision(d, tr, lr, p1, p2)
|
|
|
|
tr.close()
|