Mercurial > hg
view contrib/undumprevlog @ 46077:7a2b67e6b680
status: disable morestatus when using -0
Without this patch, you get something like this:
```
M a\x00? a.orig\x00# The repository is in an unfinished *merge* state. (esc)
# Unresolved merge conflicts:
#
# a
#
# To mark files as resolved: hg resolve --mark FILE
# To continue: hg commit
# To abort: hg merge --abort
```
That doesn't seem like something one would ever want. I considered
making it an error to combine `-0` with morestatus, but it seems very
likely that that would just make the user spend time trying to figure
out how to disable morestatus, so it feels like we might as well just
do it for them.
Differential Revision: https://phab.mercurial-scm.org/D9545
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 08 Dec 2020 13:33:40 -0800 |
parents | c102b704edb5 |
children | 59fa3890d40a |
line wrap: on
line source
#!/usr/bin/env python3 # Undump a dump from dumprevlog # $ hg init # $ undumprevlog < repo.dump from __future__ import absolute_import, print_function import sys from mercurial import ( encoding, node, revlog, transaction, vfs as vfsmod, ) from mercurial.utils import procutil for fp in (sys.stdin, sys.stdout, sys.stderr): procutil.setbinary(fp) opener = vfsmod.vfs(b'.', False) tr = transaction.transaction( sys.stderr.write, opener, {b'store': opener}, b"undump.journal" ) while True: l = sys.stdin.readline() if not l: break if l.startswith("file:"): f = encoding.strtolocal(l[6:-1]) r = revlog.revlog(opener, f) procutil.stdout.write(b'%s\n' % 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 = encoding.strtolocal(sys.stdin.read(length)) sys.stdin.readline() # end marker r.addrevision(d, tr, lr, p1, p2) tr.close()