Mercurial > hg
annotate tests/test-bundle-type.t @ 30442:41a8106789ca
util: implement zstd compression engine
Now that zstd is vendored and being built (in some configurations), we
can implement a compression engine for zstd!
The zstd engine is a little different from existing engines. Because
it may not always be present, we have to defer load the module in case
importing it fails. We facilitate this via a cached property that holds
a reference to the module or None. The "available" method is
implemented to reflect reality.
The zstd engine declares its ability to handle bundles using the
"zstd" human name and the "ZS" internal name. The latter was chosen
because internal names are 2 characters (by only convention I think)
and "ZS" seems reasonable.
The engine, like others, supports specifying the compression level.
However, there are no consumers of this API that yet pass in that
argument. I have plans to change that, so stay tuned.
Since all we need to do to support bundle generation with a new
compression engine is implement and register the compression engine,
bundle generation with zstd "just works!" Tests demonstrating this
have been added.
How does performance of zstd for bundle generation compare? On the
mozilla-unified repo, `hg bundle --all -t <engine>-v2` yields the
following on my i7-6700K on Linux:
engine CPU time bundle size vs orig size throughput
none 97.0s 4,054,405,584 100.0% 41.8 MB/s
bzip2 (l=9) 393.6s 975,343,098 24.0% 10.3 MB/s
gzip (l=6) 184.0s 1,140,533,074 28.1% 22.0 MB/s
zstd (l=1) 108.2s 1,119,434,718 27.6% 37.5 MB/s
zstd (l=2) 111.3s 1,078,328,002 26.6% 36.4 MB/s
zstd (l=3) 113.7s 1,011,823,727 25.0% 35.7 MB/s
zstd (l=4) 116.0s 1,008,965,888 24.9% 35.0 MB/s
zstd (l=5) 121.0s 977,203,148 24.1% 33.5 MB/s
zstd (l=6) 131.7s 927,360,198 22.9% 30.8 MB/s
zstd (l=7) 139.0s 912,808,505 22.5% 29.2 MB/s
zstd (l=12) 198.1s 854,527,714 21.1% 20.5 MB/s
zstd (l=18) 681.6s 789,750,690 19.5% 5.9 MB/s
On compression, zstd for bundle generation delivers:
* better compression than gzip with significantly less CPU utilization
* better than bzip2 compression ratios while still being significantly
faster than gzip
* ability to aggressively tune compression level to achieve
significantly smaller bundles
That last point is important. With clone bundles, a server can
pre-generate a bundle file, upload it to a static file server, and
redirect clients to transparently download it during clone. The server
could choose to produce a zstd bundle with the highest compression
settings possible. This would take a very long time - a magnitude
longer than a typical zstd bundle generation - but the result would
be hundreds of megabytes smaller! For the clone volume we do at
Mozilla, this could translate to petabytes of bandwidth savings
per year and faster clones (due to smaller transfer size).
I don't have detailed numbers to report on decompression. However,
zstd decompression is fast: >1 GB/s output throughput on this machine,
even through the Python bindings. And it can do that regardless of the
compression level of the input. By the time you have enough data to
worry about overhead of decompression, you have plenty of other things
to worry about performance wise.
zstd is wins all around. I can't wait to implement support for it
on the wire protocol and in revlogs.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Fri, 11 Nov 2016 01:10:07 -0800 |
parents | e65d33182fd4 |
children | 76104a4899ad |
rev | line source |
---|---|
26925
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
1 |
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
2 $ cat << EOF >> $HGRCPATH |
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
3 > [format] |
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
4 > usegeneraldelta=yes |
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
5 > EOF |
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
6 |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
7 bundle w/o type option |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
8 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
9 $ hg init t1 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
10 $ hg init t2 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
11 $ cd t1 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
12 $ echo blablablablabla > file.txt |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
13 $ hg ci -Ama |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
14 adding file.txt |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
15 $ hg log | grep summary |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
16 summary: a |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
17 $ hg bundle ../b1 ../t2 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
18 searching for changes |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
19 1 changesets found |
6570
626cb86a6523
add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
20 |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
21 $ cd ../t2 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
22 $ hg pull ../b1 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
23 pulling from ../b1 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
24 requesting all changes |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
25 adding changesets |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
26 adding manifests |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
27 adding file changes |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
28 added 1 changesets with 1 changes to 1 files |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
29 (run 'hg update' to get a working copy) |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
30 $ hg up |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
31 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
32 $ hg log | grep summary |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
33 summary: a |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
34 $ cd .. |
6570
626cb86a6523
add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
35 |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
36 test bundle types |
6570
626cb86a6523
add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
37 |
30442
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
38 $ testbundle() { |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
39 > echo % test bundle type $1 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
40 > hg init t$1 |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
41 > cd t1 |
30442
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
42 > hg bundle -t $1 ../b$1 ../t$1 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
43 > f -q -B6 -D ../b$1; echo |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
44 > cd ../t$1 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
45 > hg debugbundle ../b$1 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
46 > hg debugbundle --spec ../b$1 |
26511
bb3d961c1648
test-bundle-type: replace unbundle with debugbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24138
diff
changeset
|
47 > echo |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
48 > cd .. |
30442
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
49 > } |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
50 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
51 $ for t in "None" "bzip2" "gzip" "none-v2" "v2" "v1" "gzip-v1"; do |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
52 > testbundle $t |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
53 > done |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
54 % test bundle type None |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
55 searching for changes |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
56 1 changesets found |
26925
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
57 HG20\x00\x00 (esc) |
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
58 Stream params: {} |
29593
953839de96ab
bundle2: store changeset count when creating file bundles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29592
diff
changeset
|
59 changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])" |
26925
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
60 c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf |
27885
2370c66110cb
commands: teach debugbundle to print bundle specification
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26925
diff
changeset
|
61 none-v2 |
26511
bb3d961c1648
test-bundle-type: replace unbundle with debugbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24138
diff
changeset
|
62 |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
63 % test bundle type bzip2 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
64 searching for changes |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
65 1 changesets found |
26925
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
66 HG20\x00\x00 (esc) |
29592
37cccad55410
util: implement a deterministic __repr__ on sortdict
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27885
diff
changeset
|
67 Stream params: sortdict([('Compression', 'BZ')]) |
29593
953839de96ab
bundle2: store changeset count when creating file bundles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29592
diff
changeset
|
68 changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])" |
26925
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
69 c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf |
27885
2370c66110cb
commands: teach debugbundle to print bundle specification
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26925
diff
changeset
|
70 bzip2-v2 |
26511
bb3d961c1648
test-bundle-type: replace unbundle with debugbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24138
diff
changeset
|
71 |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
72 % test bundle type gzip |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
73 searching for changes |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
74 1 changesets found |
26925
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
75 HG20\x00\x00 (esc) |
29592
37cccad55410
util: implement a deterministic __repr__ on sortdict
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27885
diff
changeset
|
76 Stream params: sortdict([('Compression', 'GZ')]) |
29593
953839de96ab
bundle2: store changeset count when creating file bundles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29592
diff
changeset
|
77 changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])" |
26925
d8270223a026
test: use generaldelta in 'test-bundle-type.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26905
diff
changeset
|
78 c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf |
27885
2370c66110cb
commands: teach debugbundle to print bundle specification
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26925
diff
changeset
|
79 gzip-v2 |
26511
bb3d961c1648
test-bundle-type: replace unbundle with debugbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
24138
diff
changeset
|
80 |
26531
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
81 % test bundle type none-v2 |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
82 searching for changes |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
83 1 changesets found |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
84 HG20\x00\x00 (esc) |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
85 Stream params: {} |
29593
953839de96ab
bundle2: store changeset count when creating file bundles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29592
diff
changeset
|
86 changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])" |
26531
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
87 c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf |
27885
2370c66110cb
commands: teach debugbundle to print bundle specification
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26925
diff
changeset
|
88 none-v2 |
26531
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
89 |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
90 % test bundle type v2 |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
91 searching for changes |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
92 1 changesets found |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
93 HG20\x00\x00 (esc) |
29592
37cccad55410
util: implement a deterministic __repr__ on sortdict
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27885
diff
changeset
|
94 Stream params: sortdict([('Compression', 'BZ')]) |
29593
953839de96ab
bundle2: store changeset count when creating file bundles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29592
diff
changeset
|
95 changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])" |
26531
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
96 c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf |
27885
2370c66110cb
commands: teach debugbundle to print bundle specification
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26925
diff
changeset
|
97 bzip2-v2 |
26531
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
98 |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
99 % test bundle type v1 |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
100 searching for changes |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
101 1 changesets found |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
102 HG10BZ |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
103 c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf |
27885
2370c66110cb
commands: teach debugbundle to print bundle specification
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26925
diff
changeset
|
104 bzip2-v1 |
26531
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
105 |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
106 % test bundle type gzip-v1 |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
107 searching for changes |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
108 1 changesets found |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
109 HG10GZ |
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
110 c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf |
27885
2370c66110cb
commands: teach debugbundle to print bundle specification
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26925
diff
changeset
|
111 gzip-v1 |
26531
15ce78517d4b
bundle: extend the format of --type to support version and compression
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26511
diff
changeset
|
112 |
30442
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
113 #if zstd |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
114 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
115 $ for t in "zstd" "zstd-v2"; do |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
116 > testbundle $t |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
117 > done |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
118 % test bundle type zstd |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
119 searching for changes |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
120 1 changesets found |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
121 HG20\x00\x00 (esc) |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
122 Stream params: sortdict([('Compression', 'ZS')]) |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
123 changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])" |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
124 c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
125 zstd-v2 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
126 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
127 % test bundle type zstd-v2 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
128 searching for changes |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
129 1 changesets found |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
130 HG20\x00\x00 (esc) |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
131 Stream params: sortdict([('Compression', 'ZS')]) |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
132 changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])" |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
133 c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
134 zstd-v2 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
135 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
136 #else |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
137 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
138 zstd is a valid engine but isn't available |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
139 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
140 $ hg -R t1 bundle -a -t zstd irrelevant.hg |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
141 abort: compression engine zstd could not be loaded |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
142 [255] |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
143 |
41a8106789ca
util: implement zstd compression engine
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29971
diff
changeset
|
144 #endif |
6570
626cb86a6523
add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
145 |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
146 test garbage file |
6570
626cb86a6523
add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents:
diff
changeset
|
147 |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
148 $ echo garbage > bgarbage |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
149 $ hg init tgarbage |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
150 $ cd tgarbage |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
151 $ hg pull ../bgarbage |
24138
eabe44ec5af5
pull: print "pulling from foo" before accessing the other repo
Thomas Arendsen Hein <thomas@intevation.de>
parents:
16427
diff
changeset
|
152 pulling from ../bgarbage |
12044
bcc7139521b7
bundlerepo: remove duplication of bundle decompressors
Matt Mackall <mpm@selenic.com>
parents:
11872
diff
changeset
|
153 abort: ../bgarbage: not a Mercurial bundle |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12044
diff
changeset
|
154 [255] |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
155 $ cd .. |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
156 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
157 test invalid bundle type |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
158 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
159 $ cd t1 |
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
160 $ hg bundle -a -t garbage ../bgarbage |
26640
b13fdcc4e700
exchange: refactor bundle specification parsing
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26595
diff
changeset
|
161 abort: garbage is not a recognized bundle specification |
29971
e65d33182fd4
bundle: use single quotes in use warning
timeless <timeless@mozdev.org>
parents:
29593
diff
changeset
|
162 (see 'hg help bundle' for supported values for --type) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12044
diff
changeset
|
163 [255] |
11872
bc436a97038b
tests: unify test-bundle-type
Martin Geisler <mg@lazybytes.net>
parents:
7171
diff
changeset
|
164 $ cd .. |