Touching test-clone-stream.t is very painful otherwise.
Details
Details
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
( )
Touching test-clone-stream.t is very painful otherwise.
Automatic diff as part of commit; lint not applicable. |
Automatic diff as part of commit; unit tests not applicable. |
Path | Packages | |||
---|---|---|---|---|
M | tests/common-pattern.py (8 lines) | |||
M | tests/test-bundle.t (2 lines) | |||
M | tests/test-clone-stream.t (24 lines) | |||
M | tests/test-http-bundle1.t (3 lines) | |||
M | tests/test-stream-bundle-v2.t (4 lines) |
# pushing to file:/*/$TESTTMP/r2 (glob) | # pushing to file:/*/$TESTTMP/r2 (glob) | ||||
# comparing with file:/*/$TESTTMP/r2 (glob) | # comparing with file:/*/$TESTTMP/r2 (glob) | ||||
# sub/maybelarge.dat: largefile 34..9c not available from | # sub/maybelarge.dat: largefile 34..9c not available from | ||||
# file:/*/$TESTTMP/largefiles-repo (glob) | # file:/*/$TESTTMP/largefiles-repo (glob) | ||||
( | ( | ||||
br'(.*file:/)/?(/\$TESTTMP.*)', | br'(.*file:/)/?(/\$TESTTMP.*)', | ||||
lambda m: m.group(1) + b'*' + m.group(2) + b' (glob)', | lambda m: m.group(1) + b'*' + m.group(2) + b' (glob)', | ||||
), | ), | ||||
# `hg clone --stream` output | |||||
( | |||||
br'transferred (\S+?) KB in \S+? seconds \(.+?/sec\)(?: \(glob\))?(.*)', | |||||
lambda m: ( | |||||
br'transferred %s KB in * seconds (* */sec) (glob)%s' | |||||
% (m.group(1), m.group(2)) | |||||
), | |||||
), | |||||
] | ] | ||||
# Various platform error strings, keyed on a common replacement string | # Various platform error strings, keyed on a common replacement string | ||||
_errors = { | _errors = { | ||||
br'$ENOENT$': ( | br'$ENOENT$': ( | ||||
# IOError in Python does not have the same error message | # IOError in Python does not have the same error message | ||||
# than in Rust, and automatic conversion is not possible | # than in Rust, and automatic conversion is not possible | ||||
# because of module member privacy. | # because of module member privacy. |
> [extensions] | > [extensions] | ||||
> showtip = $TESTTMP/showtip.py | > showtip = $TESTTMP/showtip.py | ||||
> EOF | > EOF | ||||
$ hg -R packed debugapplystreamclonebundle packed.hg | $ hg -R packed debugapplystreamclonebundle packed.hg | ||||
6 files to transfer, 2.60 KB of data | 6 files to transfer, 2.60 KB of data | ||||
pretxnopen: 000000000000 | pretxnopen: 000000000000 | ||||
pretxnclose: aa35859c02ea | pretxnclose: aa35859c02ea | ||||
transferred 2.60 KB in *.* seconds (* */sec) (glob) | transferred 2.60 KB in * seconds (* */sec) (glob) | ||||
txnclose: aa35859c02ea | txnclose: aa35859c02ea | ||||
(for safety, confirm visibility of streamclone-ed changes by another | (for safety, confirm visibility of streamclone-ed changes by another | ||||
process, too) | process, too) | ||||
$ hg -R packed tip -T "{node|short}\n" | $ hg -R packed tip -T "{node|short}\n" | ||||
aa35859c02ea | aa35859c02ea | ||||
$ cd .. | $ cd .. | ||||
Basic clone | Basic clone | ||||
#if stream-legacy | #if stream-legacy | ||||
$ hg clone --stream -U http://localhost:$HGPORT clone1 | $ hg clone --stream -U http://localhost:$HGPORT clone1 | ||||
streaming all changes | streaming all changes | ||||
1089 files to transfer, 101 KB of data (no-zstd !) | 1089 files to transfer, 101 KB of data (no-zstd !) | ||||
transferred 101 KB in * seconds (*/sec) (glob) (no-zstd !) | transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
1089 files to transfer, 98.5 KB of data (zstd !) | 1089 files to transfer, 98.5 KB of data (zstd !) | ||||
transferred 98.5 KB in * seconds (*/sec) (glob) (zstd !) | transferred 98.5 KB in * seconds (* */sec) (glob) (zstd !) | ||||
searching for changes | searching for changes | ||||
no changes found | no changes found | ||||
$ cat server/errors.txt | $ cat server/errors.txt | ||||
#endif | #endif | ||||
#if stream-bundle2 | #if stream-bundle2 | ||||
$ hg clone --stream -U http://localhost:$HGPORT clone1 | $ hg clone --stream -U http://localhost:$HGPORT clone1 | ||||
streaming all changes | streaming all changes | ||||
1092 files to transfer, 101 KB of data (no-zstd !) | 1092 files to transfer, 101 KB of data (no-zstd !) | ||||
transferred 101 KB in * seconds (*/sec) (glob) (no-zstd !) | transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
1092 files to transfer, 98.6 KB of data (zstd !) | 1092 files to transfer, 98.6 KB of data (zstd !) | ||||
transferred 98.6 KB in * seconds (* */sec) (glob) (zstd !) | transferred 98.6 KB in * seconds (* */sec) (glob) (zstd !) | ||||
$ ls -1 clone1/.hg/cache | $ ls -1 clone1/.hg/cache | ||||
branch2-base | branch2-base | ||||
branch2-immutable | branch2-immutable | ||||
branch2-served | branch2-served | ||||
branch2-served.hidden | branch2-served.hidden | ||||
#endif | #endif | ||||
--uncompressed is an alias to --stream | --uncompressed is an alias to --stream | ||||
#if stream-legacy | #if stream-legacy | ||||
$ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed | $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed | ||||
streaming all changes | streaming all changes | ||||
1089 files to transfer, 101 KB of data (no-zstd !) | 1089 files to transfer, 101 KB of data (no-zstd !) | ||||
transferred 101 KB in * seconds (*/sec) (glob) (no-zstd !) | transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
1089 files to transfer, 98.5 KB of data (zstd !) | 1089 files to transfer, 98.5 KB of data (zstd !) | ||||
transferred 98.5 KB in * seconds (*/sec) (glob) (zstd !) | transferred 98.5 KB in * seconds (* */sec) (glob) (zstd !) | ||||
searching for changes | searching for changes | ||||
no changes found | no changes found | ||||
#endif | #endif | ||||
#if stream-bundle2 | #if stream-bundle2 | ||||
$ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed | $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed | ||||
streaming all changes | streaming all changes | ||||
1092 files to transfer, 101 KB of data (no-zstd !) | 1092 files to transfer, 101 KB of data (no-zstd !) | ||||
transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
sending capabilities command | sending capabilities command | ||||
sending branchmap command | sending branchmap command | ||||
streaming all changes | streaming all changes | ||||
sending stream_out command | sending stream_out command | ||||
1089 files to transfer, 101 KB of data (no-zstd !) | 1089 files to transfer, 101 KB of data (no-zstd !) | ||||
1089 files to transfer, 98.5 KB of data (zstd !) | 1089 files to transfer, 98.5 KB of data (zstd !) | ||||
starting 4 threads for background file closing | starting 4 threads for background file closing | ||||
updating the branch cache | updating the branch cache | ||||
transferred 101 KB in * seconds (*/sec) (glob) (no-zstd !) | transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
transferred 98.5 KB in * seconds (*/sec) (glob) (zstd !) | transferred 98.5 KB in * seconds (* */sec) (glob) (zstd !) | ||||
query 1; heads | query 1; heads | ||||
sending batch command | sending batch command | ||||
searching for changes | searching for changes | ||||
all remote heads known locally | all remote heads known locally | ||||
no changes found | no changes found | ||||
sending getbundle command | sending getbundle command | ||||
bundle2-input-bundle: with-transaction | bundle2-input-bundle: with-transaction | ||||
bundle2-input-part: "listkeys" (params: 1 mandatory) supported | bundle2-input-part: "listkeys" (params: 1 mandatory) supported | ||||
$ hg serve --config server.uncompressedallowsecret=true -p $HGPORT -d --pid-file=hg.pid | $ hg serve --config server.uncompressedallowsecret=true -p $HGPORT -d --pid-file=hg.pid | ||||
$ cat hg.pid > $DAEMON_PIDS | $ cat hg.pid > $DAEMON_PIDS | ||||
$ cd .. | $ cd .. | ||||
#if stream-legacy | #if stream-legacy | ||||
$ hg clone --stream -U http://localhost:$HGPORT secret-allowed | $ hg clone --stream -U http://localhost:$HGPORT secret-allowed | ||||
streaming all changes | streaming all changes | ||||
1089 files to transfer, 101 KB of data (no-zstd !) | 1089 files to transfer, 101 KB of data (no-zstd !) | ||||
transferred 101 KB in * seconds (*/sec) (glob) (no-zstd !) | transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
1089 files to transfer, 98.5 KB of data (zstd !) | 1089 files to transfer, 98.5 KB of data (zstd !) | ||||
transferred 98.5 KB in * seconds (*/sec) (glob) (zstd !) | transferred 98.5 KB in * seconds (* */sec) (glob) (zstd !) | ||||
searching for changes | searching for changes | ||||
no changes found | no changes found | ||||
#endif | #endif | ||||
#if stream-bundle2 | #if stream-bundle2 | ||||
$ hg clone --stream -U http://localhost:$HGPORT secret-allowed | $ hg clone --stream -U http://localhost:$HGPORT secret-allowed | ||||
streaming all changes | streaming all changes | ||||
1092 files to transfer, 101 KB of data (no-zstd !) | 1092 files to transfer, 101 KB of data (no-zstd !) | ||||
transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
0: draft | 0: draft | ||||
1: draft | 1: draft | ||||
2: draft | 2: draft | ||||
#if stream-legacy | #if stream-legacy | ||||
$ hg clone --stream http://localhost:$HGPORT phase-publish | $ hg clone --stream http://localhost:$HGPORT phase-publish | ||||
streaming all changes | streaming all changes | ||||
1089 files to transfer, 101 KB of data (no-zstd !) | 1089 files to transfer, 101 KB of data (no-zstd !) | ||||
transferred 101 KB in * seconds (*) (glob) (no-zstd !) | transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
1089 files to transfer, 98.5 KB of data (zstd !) | 1089 files to transfer, 98.5 KB of data (zstd !) | ||||
transferred 98.5 KB in * seconds (*/sec) (glob) (zstd !) | transferred 98.5 KB in * seconds (* */sec) (glob) (zstd !) | ||||
searching for changes | searching for changes | ||||
no changes found | no changes found | ||||
updating to branch default | updating to branch default | ||||
1087 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1087 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
#endif | #endif | ||||
#if stream-bundle2 | #if stream-bundle2 | ||||
$ hg clone --stream http://localhost:$HGPORT phase-publish | $ hg clone --stream http://localhost:$HGPORT phase-publish | ||||
streaming all changes | streaming all changes | ||||
With v1 of the stream protocol, changeset are always cloned as public. It make | With v1 of the stream protocol, changeset are always cloned as public. It make | ||||
stream v1 unsuitable for non-publishing repository. | stream v1 unsuitable for non-publishing repository. | ||||
$ hg clone --stream http://localhost:$HGPORT phase-no-publish | $ hg clone --stream http://localhost:$HGPORT phase-no-publish | ||||
streaming all changes | streaming all changes | ||||
1089 files to transfer, 101 KB of data (no-zstd !) | 1089 files to transfer, 101 KB of data (no-zstd !) | ||||
transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | transferred 101 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
1089 files to transfer, 98.5 KB of data (zstd !) | 1089 files to transfer, 98.5 KB of data (zstd !) | ||||
transferred 98.5 KB in * seconds (*/sec) (glob) (zstd !) | transferred 98.5 KB in * seconds (* */sec) (glob) (zstd !) | ||||
searching for changes | searching for changes | ||||
no changes found | no changes found | ||||
updating to branch default | updating to branch default | ||||
1087 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1087 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg -R phase-no-publish phase -r 'all()' | $ hg -R phase-no-publish phase -r 'all()' | ||||
0: public | 0: public | ||||
1: public | 1: public | ||||
2: public | 2: public |
[100] | [100] | ||||
#if no-reposimplestore | #if no-reposimplestore | ||||
... but keep stream clones working | ... but keep stream clones working | ||||
$ hg clone --stream --noupdate http://localhost:$HGPORT1/ test-stream-clone | $ hg clone --stream --noupdate http://localhost:$HGPORT1/ test-stream-clone | ||||
streaming all changes | streaming all changes | ||||
* files to transfer, * of data (glob) | * files to transfer, * of data (glob) | ||||
transferred * in * seconds (* KB/sec) (glob) | transferred 1.36 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
transferred 1.38 KB in * seconds (* */sec) (glob) (zstd !) | |||||
searching for changes | searching for changes | ||||
no changes found | no changes found | ||||
#endif | #endif | ||||
... and also keep partial clones and pulls working | ... and also keep partial clones and pulls working | ||||
$ hg clone http://localhost:$HGPORT1 --rev 0 test-partial-clone | $ hg clone http://localhost:$HGPORT1 --rev 0 test-partial-clone | ||||
adding changesets | adding changesets | ||||
adding manifests | adding manifests |
adding [s] data/D.i (66 bytes) | adding [s] data/D.i (66 bytes) | ||||
adding [s] data/E.i (66 bytes) | adding [s] data/E.i (66 bytes) | ||||
adding [s] 00manifest.i (584 bytes) | adding [s] 00manifest.i (584 bytes) | ||||
adding [s] 00changelog.i (595 bytes) | adding [s] 00changelog.i (595 bytes) | ||||
adding [s] phaseroots (43 bytes) | adding [s] phaseroots (43 bytes) | ||||
adding [c] branch2-served (94 bytes) | adding [c] branch2-served (94 bytes) | ||||
adding [c] rbc-names-v1 (7 bytes) | adding [c] rbc-names-v1 (7 bytes) | ||||
adding [c] rbc-revs-v1 (40 bytes) | adding [c] rbc-revs-v1 (40 bytes) | ||||
transferred 1.65 KB in \d\.\d seconds \(.*/sec\) (re) | transferred 1.65 KB in * seconds (* */sec) (glob) | ||||
bundle2-input-part: total payload size 1840 | bundle2-input-part: total payload size 1840 | ||||
bundle2-input-bundle: 1 parts total | bundle2-input-bundle: 1 parts total | ||||
updating the branch cache | updating the branch cache | ||||
finished applying clone bundle | finished applying clone bundle | ||||
query 1; heads | query 1; heads | ||||
sending batch command | sending batch command | ||||
searching for changes | searching for changes | ||||
all remote heads known locally | all remote heads known locally | ||||
adding [s] data/D.i (66 bytes) | adding [s] data/D.i (66 bytes) | ||||
adding [s] data/E.i (66 bytes) | adding [s] data/E.i (66 bytes) | ||||
adding [s] 00manifest.i (584 bytes) | adding [s] 00manifest.i (584 bytes) | ||||
adding [s] 00changelog.i (595 bytes) | adding [s] 00changelog.i (595 bytes) | ||||
adding [s] phaseroots (43 bytes) | adding [s] phaseroots (43 bytes) | ||||
adding [c] branch2-served (94 bytes) | adding [c] branch2-served (94 bytes) | ||||
adding [c] rbc-names-v1 (7 bytes) | adding [c] rbc-names-v1 (7 bytes) | ||||
adding [c] rbc-revs-v1 (40 bytes) | adding [c] rbc-revs-v1 (40 bytes) | ||||
transferred 1.65 KB in *.* seconds (*/sec) (glob) | transferred 1.65 KB in * seconds (* */sec) (glob) | ||||
bundle2-input-part: total payload size 1840 | bundle2-input-part: total payload size 1840 | ||||
bundle2-input-bundle: 1 parts total | bundle2-input-bundle: 1 parts total | ||||
updating the branch cache | updating the branch cache | ||||
finished applying clone bundle | finished applying clone bundle | ||||
query 1; heads | query 1; heads | ||||
sending batch command | sending batch command | ||||
searching for changes | searching for changes | ||||
all remote heads known locally | all remote heads known locally |