sapling/eden/scm/tests/test-repo-compengines.t
Jun Wu f6d838bc0e extensions: enable lz4revlog by default
Summary: Some native code (ex. RevlogIndex) only knows the lz4 format.

Reviewed By: DurhamG

Differential Revision: D22368825

fbshipit-source-id: d33cee235e3aa4fbf2cfb441319e3c12728d8b5b
2020-07-14 14:33:43 -07:00

85 lines
1.8 KiB
Perl

#require py2
#chg-compatible
A new repository uses zlib storage, which doesn't need a requirement
$ hg init default
$ cd default
$ cat .hg/requires
dotencode
fncache
generaldelta
lz4revlog
revlogv1
store
treestate
$ touch foo
$ hg -q commit -A -m 'initial commit with a lot of repeated repeated repeated text to trigger compression'
$ hg debugrevlog -c | grep 0x78
[1]
$ cd ..
Unknown compression engine to format.compression aborts
$ hg --config experimental.format.compression=unknown init unknown
abort: compression engine unknown defined by experimental.format.compression not available
(run "hg debuginstall" to list available compression engines)
[255]
A requirement specifying an unknown compression engine results in bail
$ hg init unknownrequirement
$ cd unknownrequirement
$ echo exp-compression-unknown >> .hg/requires
$ hg log
abort: repository requires features unknown to this Mercurial: exp-compression-unknown!
(see https://mercurial-scm.org/wiki/MissingRequirement for more information)
[255]
$ cd ..
#if zstd
$ hg --config experimental.format.compression=zstd init zstd
$ cd zstd
$ cat .hg/requires
dotencode
exp-compression-zstd
fncache
generaldelta
lz4revlog
revlogv1
store
treestate
$ touch foo
$ hg -q commit -A -m 'initial commit with a lot of repeated repeated repeated text'
$ hg debugrevlog -c | grep 0x28
[1]
$ cd ..
Specifying a new format.compression on an existing repo won't introduce data
with that engine or a requirement
$ cd default
$ touch bar
$ hg --config experimental.format.compression=zstd -q commit -A -m 'add bar with a lot of repeated repeated repeated text'
$ cat .hg/requires
dotencode
fncache
generaldelta
lz4revlog
revlogv1
store
treestate
$ hg debugrevlog -c | grep 0x78
[1]
#endif