##// END OF EJS Templates
storage: introduce a `revlog.reuse-external-delta-parent` config...
storage: introduce a `revlog.reuse-external-delta-parent` config As pointed in c59987ab96b4, we had no simple way to get a client to not blindly reuse the delta parent from a bundle. Instead one had to rely on a side effect of the deprecated `format.generaldelta` configuration. We introduce an explicit `revlog.reuse-external-delta-parent` configuration option (default to True) to control this behavior. If the option is not set, `format.generaldelta` still control this behavior. To test the new option, we convert a couple of place where `generaldelta` have been used for its side effects.

File last commit:

r39983:a063b84c default
r41984:f6eff9e4 default
Show More
dumprevlog
43 lines | 1.0 KiB | text/plain | TextLexer
#!/usr/bin/env python
# Dump revlogs as raw data stream
# $ find .hg/store/ -name "*.i" | xargs dumprevlog > repo.dump
from __future__ import absolute_import, print_function
import sys
from mercurial import (
encoding,
node,
pycompat,
revlog,
)
from mercurial.utils import (
procutil,
)
for fp in (sys.stdin, sys.stdout, sys.stderr):
procutil.setbinary(fp)
def binopen(path, mode=b'rb'):
if b'b' not in mode:
mode = mode + b'b'
return open(path, pycompat.sysstr(mode))
def printb(data, end=b'\n'):
sys.stdout.flush()
pycompat.stdout.write(data + end)
for f in sys.argv[1:]:
r = revlog.revlog(binopen, encoding.strtolocal(f))
print("file:", f)
for i in r:
n = r.node(i)
p = r.parents(n)
d = r.revision(n)
printb(b"node: %s" % node.hex(n))
printb(b"linkrev: %d" % r.linkrev(i))
printb(b"parents: %s %s" % (node.hex(p[0]), node.hex(p[1])))
printb(b"length: %d" % len(d))
printb(b"-start-")
printb(d)
printb(b"-end-")