##// END OF EJS Templates
branching: merge stable into default
branching: merge stable into default

File last commit:

r50384:58e38c1a stable
r50401:44bc045a merge default
Show More
test-revlog.t
89 lines | 3.2 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
revlog: use revlog.display_id in format related errors...
r47928 abort: unknown flags (0x01) in version 0 revlog 00changelog
Martin von Zweigbergk
errors: use detailed exit code 50 for StorageError...
r46732 [50]
Gregory Szorc
tests: tests for revlog version and flags loading...
r32390
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
revlog: use revlog.display_id in format related errors...
r47928 abort: unknown flags (0x04) in version 1 revlog 00changelog
Martin von Zweigbergk
errors: use detailed exit code 50 for StorageError...
r46732 [50]
Gregory Szorc
tests: tests for revlog version and flags loading...
r32390
Unknown version is rejected
>>> with open('.hg/store/00changelog.i', 'wb') as fh:
Raphaël Gomès
revlog: introduce v2 format...
r47438 ... fh.write(b'\x00\x00\xbe\xef') and None
Gregory Szorc
tests: tests for revlog version and flags loading...
r32390
$ hg log
revlog: use revlog.display_id in format related errors...
r47928 abort: unknown version (48879) in revlog 00changelog
Martin von Zweigbergk
errors: use detailed exit code 50 for StorageError...
r46732 [50]
Gregory Szorc
tests: tests for revlog version and flags loading...
r32390
$ cd ..
Matt Mackall
parsers: fix list sizing rounding error (SEC)...
r28656 Test for CVE-2016-3630
Arseniy Alekseyev
test-revlog: test a repository that contains a diff against nullrev...
r50104 $ mkdir test2; cd test2
Matt Mackall
parsers: fix list sizing rounding error (SEC)...
r28656 $ hg init
Mark Thomas
py3: fix test-revlog.t...
r40317 >>> import codecs
>>> open("a.i", "wb").write(codecs.decode(codecs.decode(
Pulkit Goyal
py3: add b'' prefixes in tests/test-revlog.t...
r36502 ... b"""eJxjYGZgZIAAYQYGxhgom+k/FMx8YKx9ZUaKSOyqo4cnuKb8mbqHV5cBCVTMWb1Cwqkhe4Gsg9AD
Mark Thomas
py3: fix test-revlog.t...
r40317 ... Joa3dYtcYYYBAQ8Qr4OqZAYRICPTSr5WKd/42rV36d+8/VmrNpv7NP1jQAXrQE4BqQUARngwVA==""",
... "base64"), "zlib")) and None
Matt Mackall
parsers: fix list sizing rounding error (SEC)...
r28656
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
revlog: introduce an explicit tracking of what the revlog is about...
r47838 >>> from mercurial.revlogutils.constants import KIND_OTHER
Gregory Szorc
tests: use inline Python for revlog test...
r39316 >>> from mercurial import revlog, vfs
>>> tvfs = vfs.vfs(b'.')
>>> tvfs.options = {b'revlogv1': True}
revlog: use a "radix" to address revlog...
r47921 >>> rl = revlog.revlog(tvfs, target=(KIND_OTHER, b'test'), radix=b'a')
Gregory Szorc
tests: use inline Python for revlog test...
r39316 >>> rl.revision(1)
Mark Thomas
py3: fix test-revlog.t...
r40317 mpatchError(*'patch cannot be decoded'*) (glob)
Arseniy Alekseyev
test-revlog: test a repository that contains a diff against nullrev...
r50104
$ cd ..
Regression test for support for the old repos with strange diff encoding.
Apparently it used to be possible (maybe it's still possible, but we don't know how)
to create commits whose diffs are encoded relative to a nullrev.
This test checks that a repo with that encoding can still be read.
This is what we did to produce the repo in test-revlog-diff-relative-to-nullrev.tar:
- tweak the code in mercurial/revlogutils/deltas.py to produce such "trivial" deltas:
> if deltainfo is None:
> - deltainfo = self._fullsnapshotinfo(fh, revinfo, target_rev)
> + deltainfo = self._builddeltainfo(revinfo, nullrev, fh)
- hg init
- echo hi > a
- hg commit -Am_
- remove some cache files
Arseniy Alekseyev
tests: fix tar invocation, to address issue 6740
r50384 $ tar -xf - < "$TESTDIR"/bundles/test-revlog-diff-relative-to-nullrev.tar
Arseniy Alekseyev
test-revlog: test a repository that contains a diff against nullrev...
r50104 $ cd nullrev-diff
$ hg debugdeltachain a
debugdeltachain: also display p1/p2...
r50116 rev p1 p2 chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks
0 -1 -1 1 2 -1 p1 15 3 15 5.00000 15 0 0.00000 15 15 1.00000 1
test-revlog: adds a non-root revision with a delta against nullrev...
r50133 1 0 -1 1 2 -1 p2 15 3 15 5.00000 30 15 1.00000 30 30 0.50000 1
test-revlog: adds a new root revision with a delta against nullrev...
r50134 2 -1 -1 1 2 -1 p1 15 3 15 5.00000 45 30 2.00000 45 45 0.33333 1
Arseniy Alekseyev
test-revlog: test a repository that contains a diff against nullrev...
r50104 $ hg cat --config rhg.cat=true -r 0 a
hi
test-revlog: adds a non-root revision with a delta against nullrev...
r50133 $ hg cat --config rhg.cat=true -r 1 a
ho
test-revlog: adds a new root revision with a delta against nullrev...
r50134 $ hg cat --config rhg.cat=true -r 2 a
ha
Arseniy Alekseyev
test-revlog: test a repository that contains a diff against nullrev...
r50104 $ cd ..