##// END OF EJS Templates
debugcommands: introduce debugrevlogindex (BC)...
debugcommands: introduce debugrevlogindex (BC) `hg debugindex` was originally invented for displaying revlog index data and is highly tailored towards that. e.g. it accepts a --format option to display index data for a particular revlog version and displays things like offset and length. As we support non-revlog storage, it makes sense for `hg debugindex` to display generic index data and for there to exist storage-specific or storage-aware debug* commands for dumping non-generic index data. This commit effectively renames `hg debugindex` to `hg debugrevlogindex` and replaces `hg debugindex` with a version that is storage agnostic. Tests using --format have been updated to use `hg debugrevlogindex`. Output is backwards compatible. The replacement command uses the formatter, which means output can be templatized. At some point, we may want to tweak output (e.g. to add the revision size). But I don't feel like taking a bigger BC break at the moment. The renamed command/function had to be moved because check-code enforces alphabetical ordering of commands in this file. Differential Revision: https://phab.mercurial-scm.org/D4358

File last commit:

r39318:828a4523 default
r39318:828a4523 default
Show More
test-revlog.t
52 lines | 1.4 KiB | text/troff | Tads3Lexer
Gregory Szorc
tests: tests for revlog version and flags loading...
r32390 $ hg init empty-repo
$ cd empty-repo
Flags on revlog version 0 are rejected
>>> with open('.hg/store/00changelog.i', 'wb') as fh:
Pulkit Goyal
py3: suppress the output from .write() calls in few tests...
r38091 ... fh.write(b'\x00\x01\x00\x00') and None
Gregory Szorc
tests: tests for revlog version and flags loading...
r32390
$ hg log
Gregory Szorc
revlog: tweak wording and logic for flags validation...
r32391 abort: unknown flags (0x01) in version 0 revlog 00changelog.i!
Gregory Szorc
tests: tests for revlog version and flags loading...
r32390 [255]
Unknown flags on revlog version 1 are rejected
>>> with open('.hg/store/00changelog.i', 'wb') as fh:
Pulkit Goyal
py3: suppress the output from .write() calls in few tests...
r38091 ... fh.write(b'\x00\x04\x00\x01') and None
Gregory Szorc
tests: tests for revlog version and flags loading...
r32390
$ hg log
Gregory Szorc
revlog: tweak wording and logic for flags validation...
r32391 abort: unknown flags (0x04) in version 1 revlog 00changelog.i!
Gregory Szorc
tests: tests for revlog version and flags loading...
r32390 [255]
Unknown version is rejected
>>> with open('.hg/store/00changelog.i', 'wb') as fh:
Pulkit Goyal
py3: suppress the output from .write() calls in few tests...
r38091 ... fh.write(b'\x00\x00\x00\x02') and None
Gregory Szorc
tests: tests for revlog version and flags loading...
r32390
$ hg log
Gregory Szorc
revlog: tweak wording and logic for flags validation...
r32391 abort: unknown version (2) in revlog 00changelog.i!
Gregory Szorc
tests: tests for revlog version and flags loading...
r32390 [255]
$ cd ..
Matt Mackall
parsers: fix list sizing rounding error (SEC)...
r28656 Test for CVE-2016-3630
$ hg init
Pulkit Goyal
py3: add b'' prefixes in tests/test-revlog.t...
r36502 >>> open("a.i", "wb").write(
... b"""eJxjYGZgZIAAYQYGxhgom+k/FMx8YKx9ZUaKSOyqo4cnuKb8mbqHV5cBCVTMWb1Cwqkhe4Gsg9AD
Matt Mackall
parsers: fix list sizing rounding error (SEC)...
r28656 ... Joa3dYtcYYYBAQ8Qr4OqZAYRICPTSr5WKd/42rV36d+8/VmrNpv7NP1jQAXrQE4BqQUARngwVA=="""
... .decode("base64").decode("zlib"))
Gregory Szorc
debugcommands: introduce debugrevlogindex (BC)...
r39318 $ hg debugrevlogindex a.i
Gregory Szorc
debugcommands: drop offset and length from debugindex by default...
r37301 rev linkrev nodeid p1 p2
0 2 99e0332bd498 000000000000 000000000000
1 3 6674f57a23d8 99e0332bd498 000000000000
Gregory Szorc
tests: use inline Python for revlog test...
r39316
>>> from mercurial import revlog, vfs
>>> tvfs = vfs.vfs(b'.')
>>> tvfs.options = {b'revlogv1': True}
>>> rl = revlog.revlog(tvfs, b'a.i')
>>> rl.revision(1)
mpatchError('patch cannot be decoded',)