As see in changeset bb271ec2fbfb, zstd is 20% to 50% faster for reading and
writing.
Use take advantage of the new config behavior to try zstd by default, falling
back to zlib is zstd is not available on that plateform.
( )
As see in changeset bb271ec2fbfb, zstd is 20% to 50% faster for reading and
writing.
Use take advantage of the new config behavior to try zstd by default, falling
back to zlib is zstd is not available on that plateform.
| Automatic diff as part of commit; lint not applicable. |
| Automatic diff as part of commit; unit tests not applicable. |
Funny how most of the examples in tests are actually larger in zstd. Not that it makes any difference, cool that this change is finally happening!
✅ refresh by Heptapod after a successful CI run (🐙 💚)
| coreconfigitem( | coreconfigitem( | ||||
| b'format', | b'format', | ||||
| b'sparse-revlog', | b'sparse-revlog', | ||||
| default=True, | default=True, | ||||
| ) | ) | ||||
| coreconfigitem( | coreconfigitem( | ||||
| b'format', | b'format', | ||||
| b'revlog-compression', | b'revlog-compression', | ||||
| default=lambda: [b'zlib'], | default=lambda: [b'zstd', b'zlib'], | ||||
| alias=[(b'experimental', b'format.compression')], | alias=[(b'experimental', b'format.compression')], | ||||
| ) | ) | ||||
| coreconfigitem( | coreconfigitem( | ||||
| b'format', | b'format', | ||||
| b'usefncache', | b'usefncache', | ||||
| default=True, | default=True, | ||||
| ) | ) | ||||
| coreconfigitem( | coreconfigitem( | ||||
| Compression algorithm used by revlog. Supported values are `zlib` and | Compression algorithm used by revlog. Supported values are `zlib` and | ||||
| `zstd`. The `zlib` engine is the historical default of Mercurial. `zstd` is | `zstd`. The `zlib` engine is the historical default of Mercurial. `zstd` is | ||||
| a newer format that is usually a net win over `zlib`, operating faster at | a newer format that is usually a net win over `zlib`, operating faster at | ||||
| better compression rates. Use `zstd` to reduce CPU usage. Multiple values | better compression rates. Use `zstd` to reduce CPU usage. Multiple values | ||||
| can be specified, the first available one will be used. | can be specified, the first available one will be used. | ||||
| On some systems, the Mercurial installation may lack `zstd` support. | On some systems, the Mercurial installation may lack `zstd` support. | ||||
| Default is `zlib`. | Default is `zstd` if available, `zlib` otherwise. | ||||
| ``bookmarks-in-store`` | ``bookmarks-in-store`` | ||||
| Store bookmarks in .hg/store/. This means that bookmarks are shared when | Store bookmarks in .hg/store/. This means that bookmarks are shared when | ||||
| using `hg share` regardless of the `-B` option. | using `hg share` regardless of the `-B` option. | ||||
| Repositories with this on-disk format require Mercurial version 5.1. | Repositories with this on-disk format require Mercurial version 5.1. | ||||
| Disabled by default. | Disabled by default. | ||||
| chainbase = cl.chainbase | chainbase = cl.chainbase | ||||
| return all(rev == chainbase(rev) for rev in cl) | return all(rev == chainbase(rev) for rev in cl) | ||||
| @staticmethod | @staticmethod | ||||
| def fromconfig(repo): | def fromconfig(repo): | ||||
| return True | return True | ||||
| _has_zstd = ( | |||||
| b'zstd' in util.compengines | |||||
| and util.compengines[b'zstd'].available() | |||||
| and util.compengines[b'zstd'].revlogheader() | |||||
| ) | |||||
| @registerformatvariant | @registerformatvariant | ||||
| class compressionengine(formatvariant): | class compressionengine(formatvariant): | ||||
| name = b'compression' | name = b'compression' | ||||
| if _has_zstd: | |||||
| default = b'zstd' | |||||
| else: | |||||
| default = b'zlib' | default = b'zlib' | ||||
| description = _( | description = _( | ||||
| b'Compresion algorithm used to compress data. ' | b'Compresion algorithm used to compress data. ' | ||||
| b'Some engine are faster than other' | b'Some engine are faster than other' | ||||
| ) | ) | ||||
| upgrademessage = _( | upgrademessage = _( | ||||
| b'revlog content will be recompressed with the new algorithm.' | b'revlog content will be recompressed with the new algorithm.' | ||||
| (use 'hg debugcreatestreamclonebundle') | (use 'hg debugcreatestreamclonebundle') | ||||
| [10] | [10] | ||||
| packed1 is produced properly | packed1 is produced properly | ||||
| #if reporevlogstore | #if reporevlogstore | ||||
| $ hg -R test debugcreatestreamclonebundle packed.hg | $ hg -R test debugcreatestreamclonebundle packed.hg | ||||
| writing 2664 bytes for 6 files | writing 2664 bytes for 6 files (no-zstd !) | ||||
| writing 2665 bytes for 6 files (zstd !) | |||||
| bundle requirements: generaldelta, revlogv1, sparserevlog | bundle requirements: generaldelta, revlogv1, sparserevlog | ||||
| $ f -B 64 --size --sha1 --hexdump packed.hg | $ f -B 64 --size --sha1 --hexdump packed.hg | ||||
| packed.hg: size=2840, sha1=12bf3eee3eb8a04c503ce2d29b48f0135c7edff5 | packed.hg: size=2840, sha1=12bf3eee3eb8a04c503ce2d29b48f0135c7edff5 (no-zstd !) | ||||
| packed.hg: size=2841, sha1=8b645a65f49b0ae43042a9f3da56d4bfdf1c7f99 (zstd !) | |||||
| 0000: 48 47 53 31 55 4e 00 00 00 00 00 00 00 06 00 00 |HGS1UN..........| | 0000: 48 47 53 31 55 4e 00 00 00 00 00 00 00 06 00 00 |HGS1UN..........| | ||||
| 0010: 00 00 00 00 0a 68 00 23 67 65 6e 65 72 61 6c 64 |.....h.#generald| | 0010: 00 00 00 00 0a 68 00 23 67 65 6e 65 72 61 6c 64 |.....h.#generald| (no-zstd !) | ||||
| 0010: 00 00 00 00 0a 69 00 23 67 65 6e 65 72 61 6c 64 |.....i.#generald| (zstd !) | |||||
| 0020: 65 6c 74 61 2c 72 65 76 6c 6f 67 76 31 2c 73 70 |elta,revlogv1,sp| | 0020: 65 6c 74 61 2c 72 65 76 6c 6f 67 76 31 2c 73 70 |elta,revlogv1,sp| | ||||
| 0030: 61 72 73 65 72 65 76 6c 6f 67 00 64 61 74 61 2f |arserevlog.data/| | 0030: 61 72 73 65 72 65 76 6c 6f 67 00 64 61 74 61 2f |arserevlog.data/| | ||||
| $ hg debugbundle --spec packed.hg | $ hg debugbundle --spec packed.hg | ||||
| none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Csparserevlog | none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Csparserevlog | ||||
| generaldelta requirement is not listed in stream clone bundles unless used | generaldelta requirement is not listed in stream clone bundles unless used | ||||
| $ cat hg.pid > $DAEMON_PIDS | $ cat hg.pid > $DAEMON_PIDS | ||||
| $ 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 | ||||
| 1027 files to transfer, 96.3 KB of data | 1027 files to transfer, 96.3 KB of data (no-zstd !) | ||||
| transferred 96.3 KB in * seconds (*/sec) (glob) | transferred 96.3 KB in * seconds (*/sec) (glob) (no-zstd !) | ||||
| 1027 files to transfer, 93.5 KB of data (zstd !) | |||||
| transferred 93.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 clone1 | $ hg clone --stream -U http://localhost:$HGPORT clone1 | ||||
| streaming all changes | streaming all changes | ||||
| 1030 files to transfer, 96.5 KB of data | 1030 files to transfer, 96.5 KB of data (no-zstd !) | ||||
| transferred 96.5 KB in * seconds (* */sec) (glob) | transferred 96.5 KB in * seconds (*/sec) (glob) (no-zstd !) | ||||
| 1030 files to transfer, 93.6 KB of data (zstd !) | |||||
| transferred 93.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 | ||||
| branch2-visible | branch2-visible | ||||
| branch2-visible-hidden | branch2-visible-hidden | ||||
| hgtagsfnodes1 | hgtagsfnodes1 | ||||
| rbc-names-v1 | rbc-names-v1 | ||||
| rbc-revs-v1 | rbc-revs-v1 | ||||
| tags2 | tags2 | ||||
| tags2-served | tags2-served | ||||
| #endif | #endif | ||||
| getbundle requests with stream=1 are uncompressed | getbundle requests with stream=1 are uncompressed | ||||
| $ get-with-headers.py $LOCALIP:$HGPORT '?cmd=getbundle' content-type --bodyfile body --hgproto '0.1 0.2 comp=zlib,none' --requestheader "x-hgarg-1=bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=0&common=0000000000000000000000000000000000000000&heads=c17445101a72edac06facd130d14808dfbd5c7c2&stream=1" | $ get-with-headers.py $LOCALIP:$HGPORT '?cmd=getbundle' content-type --bodyfile body --hgproto '0.1 0.2 comp=zlib,none' --requestheader "x-hgarg-1=bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=0&common=0000000000000000000000000000000000000000&heads=c17445101a72edac06facd130d14808dfbd5c7c2&stream=1" | ||||
| 200 Script output follows | 200 Script output follows | ||||
| content-type: application/mercurial-0.2 | content-type: application/mercurial-0.2 | ||||
| $ f --size --hex --bytes 256 body | $ f --size --hex --bytes 256 body | ||||
| body: size=112262 | body: size=112262 (no-zstd !) | ||||
| body: size=109410 (zstd !) | |||||
| 0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......| | 0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......| | ||||
| 0010: 7f 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |..STREAM2.......| | 0010: 7f 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |..STREAM2.......| (no-zstd !) | ||||
| 0020: 05 09 04 0c 44 62 79 74 65 63 6f 75 6e 74 39 38 |....Dbytecount98| | 0020: 05 09 04 0c 44 62 79 74 65 63 6f 75 6e 74 39 38 |....Dbytecount98| (no-zstd !) | ||||
| 0030: 37 37 35 66 69 6c 65 63 6f 75 6e 74 31 30 33 30 |775filecount1030| | 0030: 37 37 35 66 69 6c 65 63 6f 75 6e 74 31 30 33 30 |775filecount1030| (no-zstd !) | ||||
| 0010: 99 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |..STREAM2.......| (zstd !) | |||||
| 0020: 05 09 04 0c 5e 62 79 74 65 63 6f 75 6e 74 39 35 |....^bytecount95| (zstd !) | |||||
| 0030: 38 39 37 66 69 6c 65 63 6f 75 6e 74 31 30 33 30 |897filecount1030| (zstd !) | |||||
| 0040: 72 65 71 75 69 72 65 6d 65 6e 74 73 64 6f 74 65 |requirementsdote| | 0040: 72 65 71 75 69 72 65 6d 65 6e 74 73 64 6f 74 65 |requirementsdote| | ||||
| 0050: 6e 63 6f 64 65 25 32 43 66 6e 63 61 63 68 65 25 |ncode%2Cfncache%| | 0050: 6e 63 6f 64 65 25 32 43 66 6e 63 61 63 68 65 25 |ncode%2Cfncache%| | ||||
| 0060: 32 43 67 65 6e 65 72 61 6c 64 65 6c 74 61 25 32 |2Cgeneraldelta%2| | 0060: 32 43 67 65 6e 65 72 61 6c 64 65 6c 74 61 25 32 |2Cgeneraldelta%2| | ||||
| 0070: 43 72 65 76 6c 6f 67 76 31 25 32 43 73 70 61 72 |Crevlogv1%2Cspar| | 0070: 43 72 65 76 6c 6f 67 76 31 25 32 43 73 70 61 72 |Crevlogv1%2Cspar| (no-zstd !) | ||||
| 0080: 73 65 72 65 76 6c 6f 67 25 32 43 73 74 6f 72 65 |serevlog%2Cstore| | 0080: 73 65 72 65 76 6c 6f 67 25 32 43 73 74 6f 72 65 |serevlog%2Cstore| (no-zstd !) | ||||
| 0090: 00 00 80 00 73 08 42 64 61 74 61 2f 30 2e 69 00 |....s.Bdata/0.i.| | 0090: 00 00 80 00 73 08 42 64 61 74 61 2f 30 2e 69 00 |....s.Bdata/0.i.| (no-zstd !) | ||||
| 00a0: 03 00 01 00 00 00 00 00 00 00 02 00 00 00 01 00 |................| | 00a0: 03 00 01 00 00 00 00 00 00 00 02 00 00 00 01 00 |................| (no-zstd !) | ||||
| 00b0: 00 00 00 00 00 00 01 ff ff ff ff ff ff ff ff 80 |................| | 00b0: 00 00 00 00 00 00 01 ff ff ff ff ff ff ff ff 80 |................| (no-zstd !) | ||||
| 00c0: 29 63 a0 49 d3 23 87 bf ce fe 56 67 92 67 2c 69 |)c.I.#....Vg.g,i| | 00c0: 29 63 a0 49 d3 23 87 bf ce fe 56 67 92 67 2c 69 |)c.I.#....Vg.g,i| (no-zstd !) | ||||
| 00d0: d1 ec 39 00 00 00 00 00 00 00 00 00 00 00 00 75 |..9............u| | 00d0: d1 ec 39 00 00 00 00 00 00 00 00 00 00 00 00 75 |..9............u| (no-zstd !) | ||||
| 00e0: 30 73 08 42 64 61 74 61 2f 31 2e 69 00 03 00 01 |0s.Bdata/1.i....| | 00e0: 30 73 08 42 64 61 74 61 2f 31 2e 69 00 03 00 01 |0s.Bdata/1.i....| (no-zstd !) | ||||
| 00f0: 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 |................| | 00f0: 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 |................| (no-zstd !) | ||||
| 0070: 43 72 65 76 6c 6f 67 2d 63 6f 6d 70 72 65 73 73 |Crevlog-compress| (zstd !) | |||||
| 0080: 69 6f 6e 2d 7a 73 74 64 25 32 43 72 65 76 6c 6f |ion-zstd%2Crevlo| (zstd !) | |||||
| 0090: 67 76 31 25 32 43 73 70 61 72 73 65 72 65 76 6c |gv1%2Csparserevl| (zstd !) | |||||
| 00a0: 6f 67 25 32 43 73 74 6f 72 65 00 00 80 00 73 08 |og%2Cstore....s.| (zstd !) | |||||
| 00b0: 42 64 61 74 61 2f 30 2e 69 00 03 00 01 00 00 00 |Bdata/0.i.......| (zstd !) | |||||
| 00c0: 00 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 |................| (zstd !) | |||||
| 00d0: 01 ff ff ff ff ff ff ff ff 80 29 63 a0 49 d3 23 |..........)c.I.#| (zstd !) | |||||
| 00e0: 87 bf ce fe 56 67 92 67 2c 69 d1 ec 39 00 00 00 |....Vg.g,i..9...| (zstd !) | |||||
| 00f0: 00 00 00 00 00 00 00 00 00 75 30 73 08 42 64 61 |.........u0s.Bda| (zstd !) | |||||
| --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 | ||||
| 1027 files to transfer, 96.3 KB of data | 1027 files to transfer, 96.3 KB of data (no-zstd !) | ||||
| transferred 96.3 KB in * seconds (*/sec) (glob) | transferred 96.3 KB in * seconds (*/sec) (glob) (no-zstd !) | ||||
| 1027 files to transfer, 93.5 KB of data (zstd !) | |||||
| transferred 93.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 | ||||
| 1030 files to transfer, 96.5 KB of data | 1030 files to transfer, 96.5 KB of data (no-zstd !) | ||||
| transferred 96.5 KB in * seconds (* */sec) (glob) | transferred 96.5 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
| 1030 files to transfer, 93.6 KB of data (zstd !) | |||||
| transferred 93.6 KB in * seconds (* */sec) (glob) (zstd !) | |||||
| #endif | #endif | ||||
| Clone with background file closing enabled | Clone with background file closing enabled | ||||
| #if stream-legacy | #if stream-legacy | ||||
| $ hg --debug --config worker.backgroundclose=true --config worker.backgroundcloseminfilecount=1 clone --stream -U http://localhost:$HGPORT clone-background | grep -v adding | $ hg --debug --config worker.backgroundclose=true --config worker.backgroundcloseminfilecount=1 clone --stream -U http://localhost:$HGPORT clone-background | grep -v adding | ||||
| using http://localhost:$HGPORT/ | using http://localhost:$HGPORT/ | ||||
| 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 | ||||
| 1027 files to transfer, 96.3 KB of data | 1027 files to transfer, 96.3 KB of data (no-zstd !) | ||||
| 1027 files to transfer, 93.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 96.3 KB in * seconds (*/sec) (glob) | transferred 96.3 KB in * seconds (*/sec) (glob) (no-zstd !) | ||||
| transferred 93.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 | ||||
| sending capabilities command | sending capabilities command | ||||
| query 1; heads | query 1; heads | ||||
| sending batch command | sending batch command | ||||
| streaming all changes | streaming all changes | ||||
| sending getbundle command | sending getbundle command | ||||
| bundle2-input-bundle: with-transaction | bundle2-input-bundle: with-transaction | ||||
| bundle2-input-part: "stream2" (params: 3 mandatory) supported | bundle2-input-part: "stream2" (params: 3 mandatory) supported | ||||
| applying stream bundle | applying stream bundle | ||||
| 1030 files to transfer, 96.5 KB of data | 1030 files to transfer, 96.5 KB of data (no-zstd !) | ||||
| 1030 files to transfer, 93.6 KB of data (zstd !) | |||||
| starting 4 threads for background file closing | starting 4 threads for background file closing | ||||
| starting 4 threads for background file closing | starting 4 threads for background file closing | ||||
| updating the branch cache | updating the branch cache | ||||
| transferred 96.5 KB in * seconds (* */sec) (glob) | transferred 96.5 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
| bundle2-input-part: total payload size 112094 | bundle2-input-part: total payload size 112094 (no-zstd !) | ||||
| transferred 93.6 KB in * seconds (* */sec) (glob) (zstd !) | |||||
| bundle2-input-part: total payload size 109216 (zstd !) | |||||
| bundle2-input-part: "listkeys" (params: 1 mandatory) supported | bundle2-input-part: "listkeys" (params: 1 mandatory) supported | ||||
| bundle2-input-bundle: 2 parts total | bundle2-input-bundle: 2 parts total | ||||
| checking for updated bookmarks | checking for updated bookmarks | ||||
| updating the branch cache | updating the branch cache | ||||
| (sent 3 HTTP requests and * bytes; received * bytes in responses) (glob) | (sent 3 HTTP requests and * bytes; received * bytes in responses) (glob) | ||||
| #endif | #endif | ||||
| Cannot stream clone when there are secret changesets | Cannot stream clone when there are secret changesets | ||||
| $ cd server | $ cd server | ||||
| $ 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 | ||||
| 1027 files to transfer, 96.3 KB of data | 1027 files to transfer, 96.3 KB of data (no-zstd !) | ||||
| transferred 96.3 KB in * seconds (*/sec) (glob) | transferred 96.3 KB in * seconds (*/sec) (glob) (no-zstd !) | ||||
| 1027 files to transfer, 93.5 KB of data (zstd !) | |||||
| transferred 93.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 | ||||
| 1030 files to transfer, 96.5 KB of data | 1030 files to transfer, 96.5 KB of data (no-zstd !) | ||||
| transferred 96.5 KB in * seconds (* */sec) (glob) | transferred 96.5 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
| 1030 files to transfer, 93.6 KB of data (zstd !) | |||||
| transferred 93.6 KB in * seconds (* */sec) (glob) (zstd !) | |||||
| #endif | #endif | ||||
| $ killdaemons.py | $ killdaemons.py | ||||
| Verify interaction between preferuncompressed and secret presence | Verify interaction between preferuncompressed and secret presence | ||||
| $ cd server | $ cd server | ||||
| $ hg serve --config server.preferuncompressed=true -p $HGPORT -d --pid-file=hg.pid | $ hg serve --config server.preferuncompressed=true -p $HGPORT -d --pid-file=hg.pid | ||||
| $ hg -R server bookmark -r tip some-bookmark | $ hg -R server bookmark -r tip some-bookmark | ||||
| clone it | clone it | ||||
| #if stream-legacy | #if stream-legacy | ||||
| $ hg clone --stream http://localhost:$HGPORT with-bookmarks | $ hg clone --stream http://localhost:$HGPORT with-bookmarks | ||||
| streaming all changes | streaming all changes | ||||
| 1027 files to transfer, 96.3 KB of data | 1027 files to transfer, 96.3 KB of data (no-zstd !) | ||||
| transferred 96.3 KB in * seconds (*) (glob) | transferred 96.3 KB in * seconds (*) (glob) (no-zstd !) | ||||
| 1027 files to transfer, 93.5 KB of data (zstd !) | |||||
| transferred 93.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 | ||||
| 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1025 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 with-bookmarks | $ hg clone --stream http://localhost:$HGPORT with-bookmarks | ||||
| streaming all changes | streaming all changes | ||||
| 1033 files to transfer, 96.6 KB of data | 1033 files to transfer, 96.6 KB of data (no-zstd !) | ||||
| transferred 96.6 KB in * seconds (* */sec) (glob) | transferred 96.6 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
| 1033 files to transfer, 93.8 KB of data (zstd !) | |||||
| transferred 93.8 KB in * seconds (* */sec) (glob) (zstd !) | |||||
| updating to branch default | updating to branch default | ||||
| 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| #endif | #endif | ||||
| $ hg -R with-bookmarks bookmarks | $ hg -R with-bookmarks bookmarks | ||||
| some-bookmark 1:c17445101a72 | some-bookmark 1:c17445101a72 | ||||
| Stream repository with phases | Stream repository with phases | ||||
| ----------------------------- | ----------------------------- | ||||
| Clone as publishing | Clone as publishing | ||||
| $ hg -R server phase -r 'all()' | $ hg -R server phase -r 'all()' | ||||
| 0: draft | 0: draft | ||||
| 1: draft | 1: 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 | ||||
| 1027 files to transfer, 96.3 KB of data | 1027 files to transfer, 96.3 KB of data (no-zstd !) | ||||
| transferred 96.3 KB in * seconds (*) (glob) | transferred 96.3 KB in * seconds (*) (glob) (no-zstd !) | ||||
| 1027 files to transfer, 93.5 KB of data (zstd !) | |||||
| transferred 93.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 | ||||
| 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1025 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 | ||||
| 1033 files to transfer, 96.6 KB of data | 1033 files to transfer, 96.6 KB of data (no-zstd !) | ||||
| transferred 96.6 KB in * seconds (* */sec) (glob) | transferred 96.6 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
| 1033 files to transfer, 93.8 KB of data (zstd !) | |||||
| transferred 93.8 KB in * seconds (* */sec) (glob) (zstd !) | |||||
| updating to branch default | updating to branch default | ||||
| 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| #endif | #endif | ||||
| $ hg -R phase-publish phase -r 'all()' | $ hg -R phase-publish phase -r 'all()' | ||||
| 0: public | 0: public | ||||
| 1: public | 1: public | ||||
| Clone as non publishing | Clone as non publishing | ||||
| $ cat << EOF >> server/.hg/hgrc | $ cat << EOF >> server/.hg/hgrc | ||||
| > [phases] | > [phases] | ||||
| > publish = False | > publish = False | ||||
| > EOF | > EOF | ||||
| $ killdaemons.py | $ killdaemons.py | ||||
| $ hg -R server serve -p $HGPORT -d --pid-file=hg.pid | $ hg -R server serve -p $HGPORT -d --pid-file=hg.pid | ||||
| $ cat hg.pid > $DAEMON_PIDS | $ cat hg.pid > $DAEMON_PIDS | ||||
| #if stream-legacy | #if stream-legacy | ||||
| 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 | ||||
| 1027 files to transfer, 96.3 KB of data | 1027 files to transfer, 96.3 KB of data (no-zstd !) | ||||
| transferred 96.3 KB in * seconds (*) (glob) | transferred 96.3 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
| 1027 files to transfer, 93.5 KB of data (zstd !) | |||||
| transferred 93.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 | ||||
| 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1025 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 | ||||
| #endif | #endif | ||||
| #if stream-bundle2 | #if stream-bundle2 | ||||
| $ hg clone --stream http://localhost:$HGPORT phase-no-publish | $ hg clone --stream http://localhost:$HGPORT phase-no-publish | ||||
| streaming all changes | streaming all changes | ||||
| 1034 files to transfer, 96.7 KB of data | 1034 files to transfer, 96.7 KB of data (no-zstd !) | ||||
| transferred 96.7 KB in * seconds (* */sec) (glob) | transferred 96.7 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
| 1034 files to transfer, 93.9 KB of data (zstd !) | |||||
| transferred 93.9 KB in * seconds (* */sec) (glob) (zstd !) | |||||
| updating to branch default | updating to branch default | ||||
| 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1025 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: draft | 0: draft | ||||
| 1: draft | 1: draft | ||||
| #endif | #endif | ||||
| $ killdaemons.py | $ killdaemons.py | ||||
| 1: draft | 1: draft | ||||
| 0: draft | 0: draft | ||||
| $ hg serve -p $HGPORT -d --pid-file=hg.pid | $ hg serve -p $HGPORT -d --pid-file=hg.pid | ||||
| $ cat hg.pid > $DAEMON_PIDS | $ cat hg.pid > $DAEMON_PIDS | ||||
| $ cd .. | $ cd .. | ||||
| $ hg clone -U --stream http://localhost:$HGPORT with-obsolescence | $ hg clone -U --stream http://localhost:$HGPORT with-obsolescence | ||||
| streaming all changes | streaming all changes | ||||
| 1035 files to transfer, 97.1 KB of data | 1035 files to transfer, 97.1 KB of data (no-zstd !) | ||||
| transferred 97.1 KB in * seconds (* */sec) (glob) | transferred 97.1 KB in * seconds (* */sec) (glob) (no-zstd !) | ||||
| 1035 files to transfer, 94.3 KB of data (zstd !) | |||||
| transferred 94.3 KB in * seconds (* */sec) (glob) (zstd !) | |||||
| $ hg -R with-obsolescence log -T '{rev}: {phase}\n' | $ hg -R with-obsolescence log -T '{rev}: {phase}\n' | ||||
| 1: draft | 1: draft | ||||
| 0: draft | 0: draft | ||||
| $ hg debugobsolete -R with-obsolescence | $ hg debugobsolete -R with-obsolescence | ||||
| 50382b884f66690b7045cac93a540cba4d4c906f 0 {c17445101a72edac06facd130d14808dfbd5c7c2} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} | 50382b884f66690b7045cac93a540cba4d4c906f 0 {c17445101a72edac06facd130d14808dfbd5c7c2} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} | ||||
| $ hg clone -U --stream --config experimental.evolution=0 http://localhost:$HGPORT with-obsolescence-no-evolution | $ hg clone -U --stream --config experimental.evolution=0 http://localhost:$HGPORT with-obsolescence-no-evolution | ||||
| streaming all changes | streaming all changes | ||||
| remote: abort: server has obsolescence markers, but client cannot receive them via stream clone | remote: abort: server has obsolescence markers, but client cannot receive them via stream clone | ||||
| abort: pull failed on remote | abort: pull failed on remote | ||||
| [255] | [255] | ||||
| $ killdaemons.py | $ killdaemons.py | ||||
| #endif | #endif | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: yes yes no | copies-sdc: yes yes no | ||||
| revlog-v2: yes yes no | revlog-v2: yes yes no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| #else | #else | ||||
| $ hg debugformat -v | $ hg debugformat -v | ||||
| format-variant repo config default | format-variant repo config default | ||||
| fncache: yes yes yes | fncache: yes yes yes | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| #endif | #endif | ||||
| $ echo a > a | $ echo a > a | ||||
| $ hg add a | $ hg add a | ||||
| $ hg ci -m initial | $ hg ci -m initial | ||||
| $ hg cp a b | $ hg cp a b | ||||
| $ hg cp a c | $ hg cp a c | ||||
| $ hg cp a d | $ hg cp a d | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: yes yes no | copies-sdc: yes yes no | ||||
| revlog-v2: yes yes no | revlog-v2: yes yes no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugsidedata -c -- 0 | $ hg debugsidedata -c -- 0 | ||||
| 1 sidedata entries | 1 sidedata entries | ||||
| entry-0014 size 14 | entry-0014 size 14 | ||||
| $ hg debugsidedata -c -- 1 | $ hg debugsidedata -c -- 1 | ||||
| 1 sidedata entries | 1 sidedata entries | ||||
| entry-0014 size 14 | entry-0014 size 14 | ||||
| $ hg debugsidedata -m -- 0 | $ hg debugsidedata -m -- 0 | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: yes yes no | revlog-v2: yes yes no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugsidedata -c -- 0 | $ hg debugsidedata -c -- 0 | ||||
| 1 sidedata entries | 1 sidedata entries | ||||
| entry-0014 size 14 | entry-0014 size 14 | ||||
| $ hg debugsidedata -c -- 1 | $ hg debugsidedata -c -- 1 | ||||
| 1 sidedata entries | 1 sidedata entries | ||||
| entry-0014 size 14 | entry-0014 size 14 | ||||
| $ hg debugsidedata -m -- 0 | $ hg debugsidedata -m -- 0 | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: yes yes no | copies-sdc: yes yes no | ||||
| revlog-v2: yes yes no | revlog-v2: yes yes no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugsidedata -c -- 0 | $ hg debugsidedata -c -- 0 | ||||
| 1 sidedata entries | 1 sidedata entries | ||||
| entry-0014 size 14 | entry-0014 size 14 | ||||
| $ hg debugsidedata -c -- 1 | $ hg debugsidedata -c -- 1 | ||||
| 1 sidedata entries | 1 sidedata entries | ||||
| entry-0014 size 14 | entry-0014 size 14 | ||||
| $ hg debugsidedata -m -- 0 | $ hg debugsidedata -m -- 0 | ||||
| #endif | #endif | ||||
| $ cd .. | $ cd .. | ||||
| 2 1 | 2 1 | ||||
| 3 1 | 3 1 | ||||
| 4 1 | 4 1 | ||||
| 5 1 | 5 1 | ||||
| 6 1 | 6 1 | ||||
| 7 1 | 7 1 | ||||
| 8 1 | 8 1 | ||||
| 9 1 | 9 1 | ||||
| 10 2 | 10 2 (no-zstd !) | ||||
| 10 1 (zstd !) | |||||
| 11 1 | 11 1 | ||||
| $ hg --config extensions.strip= strip --no-backup -r 1 | $ hg --config extensions.strip= strip --no-backup -r 1 | ||||
| 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| Test max chain len | Test max chain len | ||||
| $ cat >> $HGRCPATH << EOF | $ cat >> $HGRCPATH << EOF | ||||
| > [format] | > [format] | ||||
| > maxchainlen=4 | > maxchainlen=4 | ||||
| adding manifests | adding manifests | ||||
| adding file changes | adding file changes | ||||
| added 4 changesets with 6 changes to 3 files (+2 heads) | added 4 changesets with 6 changes to 3 files (+2 heads) | ||||
| new changesets 0ea3fcf9d01d:bba78d330d9c | new changesets 0ea3fcf9d01d:bba78d330d9c | ||||
| updating to branch default | updating to branch default | ||||
| 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| $ hg -R repo debugdeltachain -m | $ hg -R repo debugdeltachain -m | ||||
| rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | ||||
| 0 1 1 -1 base 104 135 104 0.77037 104 0 0.00000 | 0 1 1 -1 base 104 135 104 0.77037 104 0 0.00000 (no-zstd !) | ||||
| 1 1 2 0 prev 57 135 161 1.19259 161 0 0.00000 | 1 1 2 0 prev 57 135 161 1.19259 161 0 0.00000 (no-zstd !) | ||||
| 2 1 3 1 prev 57 135 218 1.61481 218 0 0.00000 | 2 1 3 1 prev 57 135 218 1.61481 218 0 0.00000 (no-zstd !) | ||||
| 0 1 1 -1 base 107 135 107 0.79259 107 0 0.00000 (zstd !) | |||||
| 1 1 2 0 prev 57 135 164 1.21481 164 0 0.00000 (zstd !) | |||||
| 2 1 3 1 prev 57 135 221 1.63704 221 0 0.00000 (zstd !) | |||||
| 3 2 1 -1 base 104 135 104 0.77037 104 0 0.00000 | 3 2 1 -1 base 104 135 104 0.77037 104 0 0.00000 | ||||
| $ hg -R usegd debugdeltachain -m | $ hg -R usegd debugdeltachain -m | ||||
| rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | ||||
| 0 1 1 -1 base 104 135 104 0.77037 104 0 0.00000 | 0 1 1 -1 base 104 135 104 0.77037 104 0 0.00000 (no-zstd !) | ||||
| 1 1 2 0 p1 57 135 161 1.19259 161 0 0.00000 | 1 1 2 0 p1 57 135 161 1.19259 161 0 0.00000 (no-zstd !) | ||||
| 2 1 3 1 prev 57 135 218 1.61481 218 0 0.00000 | 2 1 3 1 prev 57 135 218 1.61481 218 0 0.00000 (no-zstd !) | ||||
| 3 1 2 0 p1 57 135 161 1.19259 275 114 0.70807 | 3 1 2 0 p1 57 135 161 1.19259 275 114 0.70807 (no-zstd !) | ||||
| 0 1 1 -1 base 107 135 107 0.79259 107 0 0.00000 (zstd !) | |||||
| 1 1 2 0 p1 57 135 164 1.21481 164 0 0.00000 (zstd !) | |||||
| 2 1 3 1 prev 57 135 221 1.63704 221 0 0.00000 (zstd !) | |||||
| 3 1 2 0 p1 57 135 164 1.21481 278 114 0.69512 (zstd !) | |||||
| $ hg -R full debugdeltachain -m | $ hg -R full debugdeltachain -m | ||||
| rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | ||||
| 0 1 1 -1 base 104 135 104 0.77037 104 0 0.00000 | 0 1 1 -1 base 104 135 104 0.77037 104 0 0.00000 (no-zstd !) | ||||
| 1 1 2 0 p1 57 135 161 1.19259 161 0 0.00000 | 1 1 2 0 p1 57 135 161 1.19259 161 0 0.00000 (no-zstd !) | ||||
| 2 1 2 0 p1 57 135 161 1.19259 218 57 0.35404 | 2 1 2 0 p1 57 135 161 1.19259 218 57 0.35404 (no-zstd !) | ||||
| 3 1 2 0 p1 57 135 161 1.19259 275 114 0.70807 | 3 1 2 0 p1 57 135 161 1.19259 275 114 0.70807 (no-zstd !) | ||||
| 0 1 1 -1 base 107 135 107 0.79259 107 0 0.00000 (zstd !) | |||||
| 1 1 2 0 p1 57 135 164 1.21481 164 0 0.00000 (zstd !) | |||||
| 2 1 2 0 p1 57 135 164 1.21481 221 57 0.34756 (zstd !) | |||||
| 3 1 2 0 p1 57 135 164 1.21481 278 114 0.69512 (zstd !) | |||||
| Test revlog.optimize-delta-parent-choice | Test revlog.optimize-delta-parent-choice | ||||
| $ hg init --config format.generaldelta=1 aggressive | $ hg init --config format.generaldelta=1 aggressive | ||||
| $ cd aggressive | $ cd aggressive | ||||
| $ cat << EOF >> .hg/hgrc | $ cat << EOF >> .hg/hgrc | ||||
| > [format] | > [format] | ||||
| > generaldelta = 1 | > generaldelta = 1 | ||||
| > EOF | > EOF | ||||
| $ touch a b c d e | $ touch a b c d e | ||||
| $ hg commit -Aqm side1 | $ hg commit -Aqm side1 | ||||
| $ hg up -q null | $ hg up -q null | ||||
| $ touch x y | $ touch x y | ||||
| $ hg commit -Aqm side2 | $ hg commit -Aqm side2 | ||||
| - Verify non-aggressive merge uses p1 (commit 1) as delta parent | - Verify non-aggressive merge uses p1 (commit 1) as delta parent | ||||
| $ hg merge -q 0 | $ hg merge -q 0 | ||||
| $ hg commit -q -m merge | $ hg commit -q -m merge | ||||
| $ hg debugdeltachain -m | $ hg debugdeltachain -m | ||||
| rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | ||||
| 0 1 1 -1 base 59 215 59 0.27442 59 0 0.00000 | 0 1 1 -1 base 59 215 59 0.27442 59 0 0.00000 (no-zstd !) | ||||
| 1 1 2 0 prev 61 86 120 1.39535 120 0 0.00000 | 1 1 2 0 prev 61 86 120 1.39535 120 0 0.00000 (no-zstd !) | ||||
| 2 1 2 0 p2 62 301 121 0.40199 182 61 0.50413 | 2 1 2 0 p2 62 301 121 0.40199 182 61 0.50413 (no-zstd !) | ||||
| 0 1 1 -1 base 68 215 68 0.31628 68 0 0.00000 (zstd !) | |||||
| 1 1 2 0 prev 70 86 138 1.60465 138 0 0.00000 (zstd !) | |||||
| 2 1 2 0 p2 68 301 136 0.45183 206 70 0.51471 (zstd !) | |||||
| $ hg strip -q -r . --config extensions.strip= | $ hg strip -q -r . --config extensions.strip= | ||||
| - Verify aggressive merge uses p2 (commit 0) as delta parent | - Verify aggressive merge uses p2 (commit 0) as delta parent | ||||
| $ hg up -q -C 1 | $ hg up -q -C 1 | ||||
| $ hg merge -q 0 | $ hg merge -q 0 | ||||
| $ hg commit -q -m merge --config storage.revlog.optimize-delta-parent-choice=yes | $ hg commit -q -m merge --config storage.revlog.optimize-delta-parent-choice=yes | ||||
| $ hg debugdeltachain -m | $ hg debugdeltachain -m | ||||
| rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio | ||||
| 0 1 1 -1 base 59 215 59 0.27442 59 0 0.00000 | 0 1 1 -1 base 59 215 59 0.27442 59 0 0.00000 (no-zstd !) | ||||
| 1 1 2 0 prev 61 86 120 1.39535 120 0 0.00000 | 1 1 2 0 prev 61 86 120 1.39535 120 0 0.00000 (no-zstd !) | ||||
| 2 1 2 0 p2 62 301 121 0.40199 182 61 0.50413 | 2 1 2 0 p2 62 301 121 0.40199 182 61 0.50413 (no-zstd !) | ||||
| 0 1 1 -1 base 68 215 68 0.31628 68 0 0.00000 (zstd !) | |||||
| 1 1 2 0 prev 70 86 138 1.60465 138 0 0.00000 (zstd !) | |||||
| 2 1 2 0 p2 68 301 136 0.45183 206 70 0.51471 (zstd !) | |||||
| Test that strip bundle use bundle2 | Test that strip bundle use bundle2 | ||||
| $ hg --config extensions.strip= strip . | $ hg --config extensions.strip= strip . | ||||
| 0 files updated, 0 files merged, 5 files removed, 0 files unresolved | 0 files updated, 0 files merged, 5 files removed, 0 files unresolved | ||||
| saved backup bundle to $TESTTMP/aggressive/.hg/strip-backup/1c5d4dc9a8b8-6c68e60c-backup.hg | saved backup bundle to $TESTTMP/aggressive/.hg/strip-backup/1c5d4dc9a8b8-6c68e60c-backup.hg | ||||
| $ hg debugbundle .hg/strip-backup/* | $ hg debugbundle .hg/strip-backup/* | ||||
| Stream params: {Compression: BZ} | Stream params: {Compression: BZ} | ||||
| changegroup -- {nbchanges: 1, version: 02} (mandatory: True) | changegroup -- {nbchanges: 1, version: 02} (mandatory: True) | ||||
| 41 3 24 40 p1 58 1104 1381 1.25091 1381 0 0.00000 | 41 3 24 40 p1 58 1104 1381 1.25091 1381 0 0.00000 | ||||
| 42 3 25 41 p1 58 1150 1439 1.25130 1439 0 0.00000 | 42 3 25 41 p1 58 1150 1439 1.25130 1439 0 0.00000 | ||||
| 43 3 26 42 p1 58 1196 1497 1.25167 1497 0 0.00000 | 43 3 26 42 p1 58 1196 1497 1.25167 1497 0 0.00000 | ||||
| 44 3 27 43 p1 58 1242 1555 1.25201 1555 0 0.00000 | 44 3 27 43 p1 58 1242 1555 1.25201 1555 0 0.00000 | ||||
| 45 3 28 44 p1 58 1288 1613 1.25233 1613 0 0.00000 | 45 3 28 44 p1 58 1288 1613 1.25233 1613 0 0.00000 | ||||
| 46 3 29 45 p1 58 1334 1671 1.25262 1671 0 0.00000 | 46 3 29 45 p1 58 1334 1671 1.25262 1671 0 0.00000 | ||||
| 47 3 30 46 p1 58 1380 1729 1.25290 1729 0 0.00000 | 47 3 30 46 p1 58 1380 1729 1.25290 1729 0 0.00000 | ||||
| 48 3 31 47 p1 58 1426 1787 1.25316 1787 0 0.00000 | 48 3 31 47 p1 58 1426 1787 1.25316 1787 0 0.00000 | ||||
| 49 4 1 -1 base 197 316 197 0.62342 197 0 0.00000 | 49 4 1 -1 base 197 316 197 0.62342 197 0 0.00000 (no-zstd !) | ||||
| 50 4 2 49 p1 58 362 255 0.70442 255 0 0.00000 | 50 4 2 49 p1 58 362 255 0.70442 255 0 0.00000 (no-zstd !) | ||||
| 51 4 3 50 prev 356 594 611 1.02862 611 0 0.00000 | 51 4 3 50 prev 356 594 611 1.02862 611 0 0.00000 (no-zstd !) | ||||
| 52 4 4 51 p1 58 640 669 1.04531 669 0 0.00000 | 52 4 4 51 p1 58 640 669 1.04531 669 0 0.00000 (no-zstd !) | ||||
| 49 4 1 -1 base 205 316 205 0.64873 205 0 0.00000 (zstd !) | |||||
| 50 4 2 49 p1 58 362 263 0.72652 263 0 0.00000 (zstd !) | |||||
| 51 4 3 50 prev 366 594 629 1.05892 629 0 0.00000 (zstd !) | |||||
| 52 4 4 51 p1 58 640 687 1.07344 687 0 0.00000 (zstd !) | |||||
| 53 5 1 -1 base 0 0 0 0.00000 0 0 0.00000 | 53 5 1 -1 base 0 0 0 0.00000 0 0 0.00000 | ||||
| 54 6 1 -1 base 369 640 369 0.57656 369 0 0.00000 | 54 6 1 -1 base 369 640 369 0.57656 369 0 0.00000 (no-zstd !) | ||||
| 54 6 1 -1 base 375 640 375 0.58594 375 0 0.00000 (zstd !) | |||||
| $ hg clone --pull source-repo --config experimental.maxdeltachainspan=2800 relax-chain --config format.generaldelta=yes | $ hg clone --pull source-repo --config experimental.maxdeltachainspan=2800 relax-chain --config format.generaldelta=yes | ||||
| requesting all changes | requesting all changes | ||||
| adding changesets | adding changesets | ||||
| adding manifests | adding manifests | ||||
| adding file changes | adding file changes | ||||
| added 55 changesets with 53 changes to 53 files (+2 heads) | added 55 changesets with 53 changes to 53 files (+2 heads) | ||||
| new changesets 61246295ee1e:c930ac4a5b32 | new changesets 61246295ee1e:c930ac4a5b32 | ||||
| updating to branch default | updating to branch default | ||||
| 41 3 24 40 p1 58 1104 1381 1.25091 1381 0 0.00000 | 41 3 24 40 p1 58 1104 1381 1.25091 1381 0 0.00000 | ||||
| 42 3 25 41 p1 58 1150 1439 1.25130 1439 0 0.00000 | 42 3 25 41 p1 58 1150 1439 1.25130 1439 0 0.00000 | ||||
| 43 3 26 42 p1 58 1196 1497 1.25167 1497 0 0.00000 | 43 3 26 42 p1 58 1196 1497 1.25167 1497 0 0.00000 | ||||
| 44 3 27 43 p1 58 1242 1555 1.25201 1555 0 0.00000 | 44 3 27 43 p1 58 1242 1555 1.25201 1555 0 0.00000 | ||||
| 45 3 28 44 p1 58 1288 1613 1.25233 1613 0 0.00000 | 45 3 28 44 p1 58 1288 1613 1.25233 1613 0 0.00000 | ||||
| 46 3 29 45 p1 58 1334 1671 1.25262 1671 0 0.00000 | 46 3 29 45 p1 58 1334 1671 1.25262 1671 0 0.00000 | ||||
| 47 3 30 46 p1 58 1380 1729 1.25290 1729 0 0.00000 | 47 3 30 46 p1 58 1380 1729 1.25290 1729 0 0.00000 | ||||
| 48 3 31 47 p1 58 1426 1787 1.25316 1787 0 0.00000 | 48 3 31 47 p1 58 1426 1787 1.25316 1787 0 0.00000 | ||||
| 49 4 1 -1 base 197 316 197 0.62342 197 0 0.00000 | 49 4 1 -1 base 197 316 197 0.62342 197 0 0.00000 (no-zstd !) | ||||
| 50 4 2 49 p1 58 362 255 0.70442 255 0 0.00000 | 50 4 2 49 p1 58 362 255 0.70442 255 0 0.00000 (no-zstd !) | ||||
| 51 2 13 17 p1 58 594 739 1.24411 2781 2042 2.76319 | 51 2 13 17 p1 58 594 739 1.24411 2781 2042 2.76319 (no-zstd !) | ||||
| 52 5 1 -1 base 369 640 369 0.57656 369 0 0.00000 | 52 5 1 -1 base 369 640 369 0.57656 369 0 0.00000 (no-zstd !) | ||||
| 49 4 1 -1 base 205 316 205 0.64873 205 0 0.00000 (zstd !) | |||||
| 50 4 2 49 p1 58 362 263 0.72652 263 0 0.00000 (zstd !) | |||||
| 51 2 13 17 p1 58 594 739 1.24411 2789 2050 2.77402 (zstd !) | |||||
| 52 5 1 -1 base 375 640 375 0.58594 375 0 0.00000 (zstd !) | |||||
| 53 6 1 -1 base 0 0 0 0.00000 0 0 0.00000 | 53 6 1 -1 base 0 0 0 0.00000 0 0 0.00000 | ||||
| 54 7 1 -1 base 369 640 369 0.57656 369 0 0.00000 | 54 7 1 -1 base 369 640 369 0.57656 369 0 0.00000 (no-zstd !) | ||||
| 54 7 1 -1 base 375 640 375 0.58594 375 0 0.00000 (zstd !) | |||||
| $ hg clone --pull source-repo --config experimental.maxdeltachainspan=0 noconst-chain --config format.usegeneraldelta=yes --config storage.revlog.reuse-external-delta-parent=no | $ hg clone --pull source-repo --config experimental.maxdeltachainspan=0 noconst-chain --config format.usegeneraldelta=yes --config storage.revlog.reuse-external-delta-parent=no | ||||
| requesting all changes | requesting all changes | ||||
| adding changesets | adding changesets | ||||
| adding manifests | adding manifests | ||||
| adding file changes | adding file changes | ||||
| added 55 changesets with 53 changes to 53 files (+2 heads) | added 55 changesets with 53 changes to 53 files (+2 heads) | ||||
| new changesets 61246295ee1e:c930ac4a5b32 | new changesets 61246295ee1e:c930ac4a5b32 | ||||
| updating to branch default | updating to branch default | ||||
| 46 3 29 45 p1 58 1334 1671 1.25262 1671 0 0.00000 | 46 3 29 45 p1 58 1334 1671 1.25262 1671 0 0.00000 | ||||
| 47 3 30 46 p1 58 1380 1729 1.25290 1729 0 0.00000 | 47 3 30 46 p1 58 1380 1729 1.25290 1729 0 0.00000 | ||||
| 48 3 31 47 p1 58 1426 1787 1.25316 1787 0 0.00000 | 48 3 31 47 p1 58 1426 1787 1.25316 1787 0 0.00000 | ||||
| 49 1 7 5 p1 58 316 389 1.23101 2857 2468 6.34447 | 49 1 7 5 p1 58 316 389 1.23101 2857 2468 6.34447 | ||||
| 50 1 8 49 p1 58 362 447 1.23481 2915 2468 5.52125 | 50 1 8 49 p1 58 362 447 1.23481 2915 2468 5.52125 | ||||
| 51 2 13 17 p1 58 594 739 1.24411 2642 1903 2.57510 | 51 2 13 17 p1 58 594 739 1.24411 2642 1903 2.57510 | ||||
| 52 2 14 51 p1 58 640 797 1.24531 2700 1903 2.38770 | 52 2 14 51 p1 58 640 797 1.24531 2700 1903 2.38770 | ||||
| 53 4 1 -1 base 0 0 0 0.00000 0 0 0.00000 | 53 4 1 -1 base 0 0 0 0.00000 0 0 0.00000 | ||||
| 54 5 1 -1 base 369 640 369 0.57656 369 0 0.00000 | 54 5 1 -1 base 369 640 369 0.57656 369 0 0.00000 (no-zstd !) | ||||
| 54 5 1 -1 base 375 640 375 0.58594 375 0 0.00000 (zstd !) | |||||
| $ cd .. | $ cd .. | ||||
| $ cat hg1.pid hg2.pid >> $DAEMON_PIDS | $ cat hg1.pid hg2.pid >> $DAEMON_PIDS | ||||
| clone via stream | clone via stream | ||||
| #if no-reposimplestore | #if no-reposimplestore | ||||
| $ hg clone --stream http://localhost:$HGPORT/ copy 2>&1 | $ hg clone --stream http://localhost:$HGPORT/ copy 2>&1 | ||||
| streaming all changes | streaming all changes | ||||
| 6 files to transfer, 606 bytes of data | 6 files to transfer, 606 bytes of data (no-zstd !) | ||||
| 6 files to transfer, 608 bytes of data (zstd !) | |||||
| transferred * bytes in * seconds (*/sec) (glob) | transferred * bytes in * seconds (*/sec) (glob) | ||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| updating to branch default | updating to branch default | ||||
| 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| $ hg verify -R copy | $ hg verify -R copy | ||||
| checking changesets | checking changesets | ||||
| checking manifests | checking manifests | ||||
| $ hg id http://localhost:$HGPORT2/ | $ hg id http://localhost:$HGPORT2/ | ||||
| 5fed3813f7f5 | 5fed3813f7f5 | ||||
| $ hg id http://user@localhost:$HGPORT2/ | $ hg id http://user@localhost:$HGPORT2/ | ||||
| 5fed3813f7f5 | 5fed3813f7f5 | ||||
| #if no-reposimplestore | #if no-reposimplestore | ||||
| $ hg clone http://user:pass@localhost:$HGPORT2/ dest 2>&1 | $ hg clone http://user:pass@localhost:$HGPORT2/ dest 2>&1 | ||||
| streaming all changes | streaming all changes | ||||
| 7 files to transfer, 916 bytes of data | 7 files to transfer, 916 bytes of data (no-zstd !) | ||||
| 7 files to transfer, 919 bytes of data (zstd !) | |||||
| transferred * bytes in * seconds (*/sec) (glob) | transferred * bytes in * seconds (*/sec) (glob) | ||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| updating to branch default | updating to branch default | ||||
| 5 files updated, 0 files merged, 0 files removed, 0 files unresolved | 5 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| #endif | #endif | ||||
| --pull should override server's preferuncompressed | --pull should override server's preferuncompressed | ||||
| $ cd .. | $ cd .. | ||||
| $ cat hg1.pid hg2.pid >> $DAEMON_PIDS | $ cat hg1.pid hg2.pid >> $DAEMON_PIDS | ||||
| clone via stream | clone via stream | ||||
| #if no-reposimplestore | #if no-reposimplestore | ||||
| $ hg clone --stream http://localhost:$HGPORT/ copy 2>&1 | $ hg clone --stream http://localhost:$HGPORT/ copy 2>&1 | ||||
| streaming all changes | streaming all changes | ||||
| 9 files to transfer, 715 bytes of data | 9 files to transfer, 715 bytes of data (no-zstd !) | ||||
| 9 files to transfer, 717 bytes of data (zstd !) | |||||
| transferred * bytes in * seconds (*/sec) (glob) | transferred * bytes in * seconds (*/sec) (glob) | ||||
| updating to branch default | updating to branch default | ||||
| 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| $ hg verify -R copy | $ hg verify -R copy | ||||
| checking changesets | checking changesets | ||||
| checking manifests | checking manifests | ||||
| crosschecking files in changesets and manifests | crosschecking files in changesets and manifests | ||||
| checking files | checking files | ||||
| $ hg init local | $ hg init local | ||||
| $ checknewrepo local | $ checknewrepo local | ||||
| store created | store created | ||||
| 00changelog.i created | 00changelog.i created | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| $ echo this > local/foo | $ echo this > local/foo | ||||
| $ hg ci --cwd local -A -m "init" | $ hg ci --cwd local -A -m "init" | ||||
| adding foo | adding foo | ||||
| +this | +this | ||||
| creating repo with format.usestore=false | creating repo with format.usestore=false | ||||
| $ hg --config format.usestore=false init old | $ hg --config format.usestore=false init old | ||||
| $ checknewrepo old | $ checknewrepo old | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| sparserevlog | sparserevlog | ||||
| creating repo with format.usefncache=false | creating repo with format.usefncache=false | ||||
| $ hg --config format.usefncache=false init old2 | $ hg --config format.usefncache=false init old2 | ||||
| $ checknewrepo old2 | $ checknewrepo old2 | ||||
| store created | store created | ||||
| 00changelog.i created | 00changelog.i created | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| creating repo with format.dotencode=false | creating repo with format.dotencode=false | ||||
| $ hg --config format.dotencode=false init old3 | $ hg --config format.dotencode=false init old3 | ||||
| $ checknewrepo old3 | $ checknewrepo old3 | ||||
| store created | store created | ||||
| 00changelog.i created | 00changelog.i created | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| creating repo with format.dotencode=false | creating repo with format.dotencode=false | ||||
| $ hg --config format.generaldelta=false --config format.usegeneraldelta=false --config format.sparse-revlog=no init old4 | $ hg --config format.generaldelta=false --config format.usegeneraldelta=false --config format.sparse-revlog=no init old4 | ||||
| $ checknewrepo old4 | $ checknewrepo old4 | ||||
| store created | store created | ||||
| 00changelog.i created | 00changelog.i created | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| test failure | test failure | ||||
| $ hg init local | $ hg init local | ||||
| abort: repository local already exists | abort: repository local already exists | ||||
| $ hg init local/sub/repo | $ hg init local/sub/repo | ||||
| $ checknewrepo local/sub/repo | $ checknewrepo local/sub/repo | ||||
| store created | store created | ||||
| 00changelog.i created | 00changelog.i created | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| prepare test of init of url configured from paths | prepare test of init of url configured from paths | ||||
| $ echo '[paths]' >> $HGRCPATH | $ echo '[paths]' >> $HGRCPATH | ||||
| $ echo "somewhere = `pwd`/url from paths" >> $HGRCPATH | $ echo "somewhere = `pwd`/url from paths" >> $HGRCPATH | ||||
| $ echo "elsewhere = `pwd`/another paths url" >> $HGRCPATH | $ echo "elsewhere = `pwd`/another paths url" >> $HGRCPATH | ||||
| init should (for consistency with clone) expand the url | init should (for consistency with clone) expand the url | ||||
| $ hg init somewhere | $ hg init somewhere | ||||
| $ checknewrepo "url from paths" | $ checknewrepo "url from paths" | ||||
| store created | store created | ||||
| 00changelog.i created | 00changelog.i created | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| verify that clone also expand urls | verify that clone also expand urls | ||||
| $ hg clone somewhere elsewhere | $ hg clone somewhere elsewhere | ||||
| updating to branch default | updating to branch default | ||||
| 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| $ checknewrepo "another paths url" | $ checknewrepo "another paths url" | ||||
| store created | store created | ||||
| 00changelog.i created | 00changelog.i created | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| clone bookmarks | clone bookmarks | ||||
| $ hg -R local bookmark test | $ hg -R local bookmark test | ||||
| 1276481102f218c981e0324180bafd9f sub/maybelarge.dat | 1276481102f218c981e0324180bafd9f sub/maybelarge.dat | ||||
| "lfconvert" adds 'largefiles' to .hg/requires. | "lfconvert" adds 'largefiles' to .hg/requires. | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| largefiles | largefiles | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| "lfconvert" includes a newline at the end of the standin files. | "lfconvert" includes a newline at the end of the standin files. | ||||
| $ cat .hglf/large .hglf/sub/maybelarge.dat | $ cat .hglf/large .hglf/sub/maybelarge.dat | ||||
| 2e000fa7e85759c7f4c254d4d9c33ef481e459a7 | 2e000fa7e85759c7f4c254d4d9c33ef481e459a7 | ||||
| The requirement is added to the destination repo. | The requirement is added to the destination repo. | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| lfs | lfs | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| $ hg log -r 'all()' -G -T '{rev} {join(lfs_files, ", ")} ({desc})\n' | $ hg log -r 'all()' -G -T '{rev} {join(lfs_files, ", ")} ({desc})\n' | ||||
| o 8 large_by_size.bin (remove large_by_size.bin) | o 8 large_by_size.bin (remove large_by_size.bin) | ||||
| | | | | ||||
| o 7 large_by_size.bin (large by size) | o 7 large_by_size.bin (large by size) | ||||
| adding file changes | adding file changes | ||||
| added 40 changesets with 1 changes to 1 files | added 40 changesets with 1 changes to 1 files | ||||
| new changesets *:* (glob) | new changesets *:* (glob) | ||||
| $ cd narrow | $ cd narrow | ||||
| $ cat .hg/requires | grep -v generaldelta | $ cat .hg/requires | grep -v generaldelta | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| narrowhg-experimental | narrowhg-experimental | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| $ hg tracked | $ hg tracked | ||||
| I path:dir/src/f10 | I path:dir/src/f10 | ||||
| $ hg update | $ hg update | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode (tree !) | dotencode (tree !) | ||||
| dotencode (flat-fncache !) | dotencode (flat-fncache !) | ||||
| fncache (tree !) | fncache (tree !) | ||||
| fncache (flat-fncache !) | fncache (flat-fncache !) | ||||
| generaldelta | generaldelta | ||||
| narrowhg-experimental | narrowhg-experimental | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| treemanifest (tree !) | treemanifest (tree !) | ||||
| Making sure store has the required files | Making sure store has the required files | ||||
| $ ls .hg/store/ | $ ls .hg/store/ | ||||
| adding file changes | adding file changes | ||||
| added 3 changesets with 1 changes to 1 files | added 3 changesets with 1 changes to 1 files | ||||
| new changesets *:* (glob) | new changesets *:* (glob) | ||||
| $ cd narrow | $ cd narrow | ||||
| $ cat .hg/requires | grep -v generaldelta | $ cat .hg/requires | grep -v generaldelta | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| narrowhg-experimental | narrowhg-experimental | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| $ hg tracked | $ hg tracked | ||||
| I path:dir/src/f10 | I path:dir/src/f10 | ||||
| $ hg tracked | $ hg tracked | ||||
| $ test -f .hg/sparse | $ test -f .hg/sparse | ||||
| [1] | [1] | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| narrowhg-experimental | narrowhg-experimental | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| treemanifest (tree !) | treemanifest (tree !) | ||||
| $ hg debugrebuilddirstate | $ hg debugrebuilddirstate | ||||
| 1 new obsolescence markers | 1 new obsolescence markers | ||||
| obsoleted 1 changesets | obsoleted 1 changesets | ||||
| $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden | $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden | ||||
| 2:245bde4270cd add original_c | 2:245bde4270cd add original_c | ||||
| $ hg debugrevlog -cd | $ hg debugrevlog -cd | ||||
| # rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen | # rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen | ||||
| 0 -1 -1 0 59 0 0 0 0 58 58 0 1 0 | 0 -1 -1 0 59 0 0 0 0 58 58 0 1 0 | ||||
| 1 0 -1 59 118 59 59 0 0 58 116 0 1 0 | 1 0 -1 59 118 59 59 0 0 58 116 0 1 0 | ||||
| 2 1 -1 118 193 118 118 59 0 76 192 0 1 0 | 2 1 -1 118 193 118 118 59 0 76 192 0 1 0 (no-zstd !) | ||||
| 3 1 -1 193 260 193 193 59 0 66 258 0 2 0 | 3 1 -1 193 260 193 193 59 0 66 258 0 2 0 (no-zstd !) | ||||
| 2 1 -1 118 195 118 118 59 0 76 192 0 1 0 (zstd !) | |||||
| 3 1 -1 195 262 195 195 59 0 66 258 0 2 0 (zstd !) | |||||
| $ hg debugobsolete | $ hg debugobsolete | ||||
| 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'} | 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {'user': 'test'} | ||||
| (check for version number of the obsstore) | (check for version number of the obsstore) | ||||
| $ dd bs=1 count=1 if=.hg/store/obsstore 2>/dev/null | $ dd bs=1 count=1 if=.hg/store/obsstore 2>/dev/null | ||||
| \x00 (no-eol) (esc) | \x00 (no-eol) (esc) | ||||
| dotencode: yes | dotencode: yes | ||||
| generaldelta: yes | generaldelta: yes | ||||
| share-safe: no | share-safe: no | ||||
| sparserevlog: yes | sparserevlog: yes | ||||
| persistent-nodemap: yes | persistent-nodemap: yes | ||||
| copies-sdc: no | copies-sdc: no | ||||
| revlog-v2: no | revlog-v2: no | ||||
| plain-cl-delta: yes | plain-cl-delta: yes | ||||
| compression: zlib | compression: zlib (no-zstd !) | ||||
| compression: zstd (zstd !) | |||||
| compression-level: default | compression-level: default | ||||
| $ hg debugbuilddag .+5000 --new-file | $ hg debugbuilddag .+5000 --new-file | ||||
| $ hg debugnodemap --metadata | $ hg debugnodemap --metadata | ||||
| uid: ???????????????? (glob) | uid: ???????????????? (glob) | ||||
| tip-rev: 5000 | tip-rev: 5000 | ||||
| tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c | tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c | ||||
| data-length: 121088 | data-length: 121088 | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: yes no no | persistent-nodemap: yes no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugupgraderepo --run --no-backup | $ hg debugupgraderepo --run --no-backup | ||||
| upgrade will perform the following actions: | upgrade will perform the following actions: | ||||
| requirements | requirements | ||||
| preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-zstd !) | ||||
| preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !) | |||||
| removed: persistent-nodemap | removed: persistent-nodemap | ||||
| processed revlogs: | processed revlogs: | ||||
| - all-filelogs | - all-filelogs | ||||
| - changelog | - changelog | ||||
| - manifest | - manifest | ||||
| beginning upgrade... | beginning upgrade... | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no yes no | persistent-nodemap: no yes no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugupgraderepo --run --no-backup | $ hg debugupgraderepo --run --no-backup | ||||
| upgrade will perform the following actions: | upgrade will perform the following actions: | ||||
| requirements | requirements | ||||
| preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store | preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store (no-zstd !) | ||||
| preserved: dotencode, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !) | |||||
| added: persistent-nodemap | added: persistent-nodemap | ||||
| persistent-nodemap | persistent-nodemap | ||||
| Speedup revision lookup by node id. | Speedup revision lookup by node id. | ||||
| processed revlogs: | processed revlogs: | ||||
| - all-filelogs | - all-filelogs | ||||
| - changelog | - changelog | ||||
| data-unused: 0.000% | data-unused: 0.000% | ||||
| Running unrelated upgrade | Running unrelated upgrade | ||||
| $ hg debugupgraderepo --run --no-backup --quiet --optimize re-delta-all | $ hg debugupgraderepo --run --no-backup --quiet --optimize re-delta-all | ||||
| upgrade will perform the following actions: | upgrade will perform the following actions: | ||||
| requirements | requirements | ||||
| preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store | preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store (no-zstd !) | ||||
| preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !) | |||||
| optimisations: re-delta-all | optimisations: re-delta-all | ||||
| processed revlogs: | processed revlogs: | ||||
| - all-filelogs | - all-filelogs | ||||
| - changelog | - changelog | ||||
| - manifest | - manifest | ||||
| stream clone | stream clone | ||||
| ------------ | ------------ | ||||
| The persistent nodemap should exist after a streaming clone | The persistent nodemap should exist after a streaming clone | ||||
| $ hg clone -U --stream --config ui.ssh="\"$PYTHON\" \"$TESTDIR/dummyssh\"" ssh://user@dummy/test-repo stream-clone --debug | egrep '00(changelog|manifest)' | $ hg clone -U --stream --config ui.ssh="\"$PYTHON\" \"$TESTDIR/dummyssh\"" ssh://user@dummy/test-repo stream-clone --debug | egrep '00(changelog|manifest)' | ||||
| adding [s] 00manifest.n (70 bytes) | adding [s] 00manifest.n (70 bytes) | ||||
| adding [s] 00manifest.i (313 KB) | adding [s] 00manifest.i (313 KB) | ||||
| adding [s] 00manifest.d (452 KB) | adding [s] 00manifest.d (452 KB) (no-zstd !) | ||||
| adding [s] 00manifest.d (491 KB) (zstd !) | |||||
| adding [s] 00manifest-*.nd (118 KB) (glob) | adding [s] 00manifest-*.nd (118 KB) (glob) | ||||
| adding [s] 00changelog.n (70 bytes) | adding [s] 00changelog.n (70 bytes) | ||||
| adding [s] 00changelog.i (313 KB) | adding [s] 00changelog.i (313 KB) | ||||
| adding [s] 00changelog.d (360 KB) | adding [s] 00changelog.d (360 KB) (no-zstd !) | ||||
| adding [s] 00changelog.d (368 KB) (zstd !) | |||||
| adding [s] 00changelog-*.nd (118 KB) (glob) | adding [s] 00changelog-*.nd (118 KB) (glob) | ||||
| $ ls -1 stream-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)' | $ ls -1 stream-clone/.hg/store/ | egrep '00(changelog|manifest)(\.n|-.*\.nd)' | ||||
| 00changelog-*.nd (glob) | 00changelog-*.nd (glob) | ||||
| 00changelog.n | 00changelog.n | ||||
| 00manifest-*.nd (glob) | 00manifest-*.nd (glob) | ||||
| 00manifest.n | 00manifest.n | ||||
| $ hg -R stream-clone debugnodemap --metadata | $ hg -R stream-clone debugnodemap --metadata | ||||
| uid: * (glob) | uid: * (glob) | ||||
| tip-rev: 5005 | tip-rev: 5005 | ||||
| tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe | tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe | ||||
| data-length: 121088 | data-length: 121088 | ||||
| data-unused: 0 | data-unused: 0 | ||||
| data-unused: 0.000% | data-unused: 0.000% | ||||
| Check we deny its usage on older repository | Check we deny its usage on older repository | ||||
| $ hg init no-internal-phase --config format.internal-phase=no | $ hg init no-internal-phase --config format.internal-phase=no | ||||
| $ cd no-internal-phase | $ cd no-internal-phase | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| $ echo X > X | $ echo X > X | ||||
| $ hg add X | $ hg add X | ||||
| $ hg status | $ hg status | ||||
| A X | A X | ||||
| $ hg --config "phases.new-commit=internal" commit -m "my test internal commit" 2>&1 | grep ProgrammingError | $ hg --config "phases.new-commit=internal" commit -m "my test internal commit" 2>&1 | grep ProgrammingError | ||||
| $ hg init internal-phase --config format.internal-phase=yes | $ hg init internal-phase --config format.internal-phase=yes | ||||
| $ cd internal-phase | $ cd internal-phase | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| internal-phase | internal-phase | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| $ mkcommit A | $ mkcommit A | ||||
| test-debug-phase: new rev 0: x -> 1 | test-debug-phase: new rev 0: x -> 1 | ||||
| test-hook-close-phase: 4a2df7238c3b48766b5e22fafbb8a2f506ec8256: -> draft | test-hook-close-phase: 4a2df7238c3b48766b5e22fafbb8a2f506ec8256: -> draft | ||||
| Commit an internal changesets | Commit an internal changesets | ||||
| $ hg bookmark foo | $ hg bookmark foo | ||||
| $ cd .. | $ cd .. | ||||
| # clone the repo | # clone the repo | ||||
| $ hgcloneshallow ssh://user@dummy/master shallow --noupdate | $ hgcloneshallow ssh://user@dummy/master shallow --noupdate | ||||
| streaming all changes | streaming all changes | ||||
| 2 files to transfer, 776 bytes of data | 2 files to transfer, 776 bytes of data (no-zstd !) | ||||
| transferred 776 bytes in * seconds (*/sec) (glob) | transferred 776 bytes in * seconds (*/sec) (glob) (no-zstd !) | ||||
| 2 files to transfer, 784 bytes of data (zstd !) | |||||
| transferred 784 bytes in * seconds (* */sec) (glob) (zstd !) | |||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| # Set the prefetchdays config to zero so that all commits are prefetched | # Set the prefetchdays config to zero so that all commits are prefetched | ||||
| # no matter what their creation date is. Also set prefetchdelay config | # no matter what their creation date is. Also set prefetchdelay config | ||||
| # to zero so that there is no delay between prefetches. | # to zero so that there is no delay between prefetches. | ||||
| $ cd shallow | $ cd shallow | ||||
| $ cat >> .hg/hgrc <<EOF | $ cat >> .hg/hgrc <<EOF | ||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| $ cd shallow | $ cd shallow | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| exp-remotefilelog-repo-req-1 | exp-remotefilelog-repo-req-1 | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| treemanifest | treemanifest | ||||
| $ find .hg/store/meta | sort | $ find .hg/store/meta | sort | ||||
| .hg/store/meta | .hg/store/meta | ||||
| .hg/store/meta/_a | .hg/store/meta/_a | ||||
| .hg/store/meta/_a/00manifest.i | .hg/store/meta/_a/00manifest.i | ||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| $ cd shallow2 | $ cd shallow2 | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| exp-remotefilelog-repo-req-1 | exp-remotefilelog-repo-req-1 | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| treemanifest | treemanifest | ||||
| $ ls .hg/store/data | $ ls .hg/store/data | ||||
| ca31988f085bfb945cb8115b78fabdee40f741aa | ca31988f085bfb945cb8115b78fabdee40f741aa | ||||
| $ hg update | $ hg update | ||||
| 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| $ ls shallow3/.hg/store/data | $ ls shallow3/.hg/store/data | ||||
| $ cat shallow3/.hg/requires | $ cat shallow3/.hg/requires | ||||
| dotencode | dotencode | ||||
| exp-remotefilelog-repo-req-1 | exp-remotefilelog-repo-req-1 | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| treemanifest | treemanifest | ||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| $ cd shallow | $ cd shallow | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| exp-remotefilelog-repo-req-1 | exp-remotefilelog-repo-req-1 | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| $ hg update | $ hg update | ||||
| 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) | 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) | ||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| $ cd shallow2 | $ cd shallow2 | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| exp-remotefilelog-repo-req-1 | exp-remotefilelog-repo-req-1 | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| $ ls .hg/store/data | $ ls .hg/store/data | ||||
| 4a0a19218e082a343a1b17e5333409af9d98f0f5 | 4a0a19218e082a343a1b17e5333409af9d98f0f5 | ||||
| $ hg update | $ hg update | ||||
| 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| $ ls shallow3/.hg/store/data | $ ls shallow3/.hg/store/data | ||||
| $ cat shallow3/.hg/requires | $ cat shallow3/.hg/requires | ||||
| dotencode | dotencode | ||||
| exp-remotefilelog-repo-req-1 | exp-remotefilelog-repo-req-1 | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| $ cd shallow | $ cd shallow | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| exp-remotefilelog-repo-req-1 | exp-remotefilelog-repo-req-1 | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| $ hg update | $ hg update | ||||
| 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob) | 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob) | ||||
| $ hg commit -qAm one | $ hg commit -qAm one | ||||
| $ cd .. | $ cd .. | ||||
| # partial shallow clone | # partial shallow clone | ||||
| $ hg clone --shallow ssh://user@dummy/master shallow --noupdate --config remotefilelog.includepattern=foo | $ hg clone --shallow ssh://user@dummy/master shallow --noupdate --config remotefilelog.includepattern=foo | ||||
| streaming all changes | streaming all changes | ||||
| 3 files to transfer, 336 bytes of data | 3 files to transfer, 336 bytes of data (no-zstd !) | ||||
| transferred 336 bytes in * seconds (*/sec) (glob) | transferred 336 bytes in * seconds (* */sec) (glob) (no-zstd !) | ||||
| 3 files to transfer, 338 bytes of data (zstd !) | |||||
| transferred 338 bytes in * seconds (* */sec) (glob) (zstd !) | |||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| $ cat >> shallow/.hg/hgrc <<EOF | $ cat >> shallow/.hg/hgrc <<EOF | ||||
| > [remotefilelog] | > [remotefilelog] | ||||
| > cachepath=$PWD/hgcache | > cachepath=$PWD/hgcache | ||||
| > debug=True | > debug=True | ||||
| > includepattern=foo | > includepattern=foo | ||||
| > reponame = master | > reponame = master | ||||
| $ hg bookmark foo | $ hg bookmark foo | ||||
| $ cd .. | $ cd .. | ||||
| # prefetch a revision | # prefetch a revision | ||||
| $ hgcloneshallow ssh://user@dummy/master shallow --noupdate | $ hgcloneshallow ssh://user@dummy/master shallow --noupdate | ||||
| streaming all changes | streaming all changes | ||||
| 2 files to transfer, 528 bytes of data | 2 files to transfer, 528 bytes of data (no-zstd !) | ||||
| transferred 528 bytes in * seconds (*/sec) (glob) | transferred 528 bytes in * seconds (* */sec) (glob) (no-zstd !) | ||||
| 2 files to transfer, 532 bytes of data (zstd !) | |||||
| transferred 532 bytes in * seconds (* */sec) (glob) (zstd !) | |||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| $ cd shallow | $ cd shallow | ||||
| $ hg prefetch -r 0 | $ hg prefetch -r 0 | ||||
| 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob) | 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob) | ||||
| $ hg cat -r 0 x | $ hg cat -r 0 x | ||||
| 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob) | 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob) | ||||
| $ cd .. | $ cd .. | ||||
| # Prefetch unknown files during checkout | # Prefetch unknown files during checkout | ||||
| $ hgcloneshallow ssh://user@dummy/master shallow2 | $ hgcloneshallow ssh://user@dummy/master shallow2 | ||||
| streaming all changes | streaming all changes | ||||
| 2 files to transfer, 528 bytes of data | 2 files to transfer, 528 bytes of data (no-zstd !) | ||||
| transferred 528 bytes in * seconds * (glob) | transferred 528 bytes in * seconds * (glob) (no-zstd !) | ||||
| 2 files to transfer, 532 bytes of data (zstd !) | |||||
| transferred 532 bytes 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 | ||||
| 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob) | 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob) | ||||
| $ cd shallow2 | $ cd shallow2 | ||||
| $ hg up -q null | $ hg up -q null | ||||
| $ echo x > x | $ echo x > x | ||||
| $ hg bookmark foo | $ hg bookmark foo | ||||
| $ cd .. | $ cd .. | ||||
| # prefetch a revision w/ a sparse checkout | # prefetch a revision w/ a sparse checkout | ||||
| $ hgcloneshallow ssh://user@dummy/master shallow --noupdate | $ hgcloneshallow ssh://user@dummy/master shallow --noupdate | ||||
| streaming all changes | streaming all changes | ||||
| 2 files to transfer, 527 bytes of data | 2 files to transfer, 527 bytes of data (no-zstd !) | ||||
| transferred 527 bytes in 0.* seconds (*/sec) (glob) | transferred 527 bytes in * seconds (* */sec) (glob) (no-zstd !) | ||||
| 2 files to transfer, 534 bytes of data (zstd !) | |||||
| transferred 534 bytes in * seconds (* */sec) (glob) (zstd !) | |||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| $ cd shallow | $ cd shallow | ||||
| $ printf "[extensions]\nsparse=\n" >> .hg/hgrc | $ printf "[extensions]\nsparse=\n" >> .hg/hgrc | ||||
| $ hg debugsparse -I x | $ hg debugsparse -I x | ||||
| $ hg prefetch -r 0 | $ hg prefetch -r 0 | ||||
| 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) | 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) | ||||
| # Dont consider filtered files when doing copy tracing | # Dont consider filtered files when doing copy tracing | ||||
| ## Push an unrelated commit | ## Push an unrelated commit | ||||
| $ cd ../ | $ cd ../ | ||||
| $ hgcloneshallow ssh://user@dummy/master shallow2 | $ hgcloneshallow ssh://user@dummy/master shallow2 | ||||
| streaming all changes | streaming all changes | ||||
| 2 files to transfer, 527 bytes of data | 2 files to transfer, 527 bytes of data (no-zstd !) | ||||
| transferred 527 bytes in 0.* seconds (*) (glob) | transferred 527 bytes in * seconds (*) (glob) (no-zstd !) | ||||
| 2 files to transfer, 534 bytes of data (zstd !) | |||||
| transferred 534 bytes 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 | ||||
| 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) | 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) | ||||
| $ cd shallow2 | $ cd shallow2 | ||||
| $ printf "[extensions]\nsparse=\n" >> .hg/hgrc | $ printf "[extensions]\nsparse=\n" >> .hg/hgrc | ||||
| $ hg commit -qAm one | $ hg commit -qAm one | ||||
| $ hg tag tag1 | $ hg tag tag1 | ||||
| $ cd .. | $ cd .. | ||||
| # clone with tags | # clone with tags | ||||
| $ hg clone --shallow ssh://user@dummy/master shallow --noupdate --config remotefilelog.excludepattern=.hgtags | $ hg clone --shallow ssh://user@dummy/master shallow --noupdate --config remotefilelog.excludepattern=.hgtags | ||||
| streaming all changes | streaming all changes | ||||
| 3 files to transfer, 662 bytes of data | 3 files to transfer, 662 bytes of data (no-zstd !) | ||||
| transferred 662 bytes in * seconds (*/sec) (glob) | transferred 662 bytes in * seconds (* */sec) (glob) (no-zstd !) | ||||
| 3 files to transfer, 665 bytes of data (zstd !) | |||||
| transferred 665 bytes in * seconds (* */sec) (glob) (zstd !) | |||||
| searching for changes | searching for changes | ||||
| no changes found | no changes found | ||||
| $ cat >> shallow/.hg/hgrc <<EOF | $ cat >> shallow/.hg/hgrc <<EOF | ||||
| > [remotefilelog] | > [remotefilelog] | ||||
| > cachepath=$PWD/hgcache | > cachepath=$PWD/hgcache | ||||
| > debug=True | > debug=True | ||||
| > reponame = master | > reponame = master | ||||
| > excludepattern=.hgtags | > excludepattern=.hgtags | ||||
| > # enable extension locally | > # enable extension locally | ||||
| > supportlocally = $TESTTMP/supported-locally/supportlocally.py | > supportlocally = $TESTTMP/supported-locally/supportlocally.py | ||||
| > EOF | > EOF | ||||
| $ hg -R supported debugrequirements | $ hg -R supported debugrequirements | ||||
| dotencode | dotencode | ||||
| featuresetup-test | featuresetup-test | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| $ hg -R supported status | $ hg -R supported status | ||||
| $ hg init push-dst | $ hg init push-dst | ||||
| $ hg -R supported push push-dst | $ hg -R supported push push-dst | ||||
| pushing to push-dst | pushing to push-dst | ||||
| > EOF | > EOF | ||||
| $ hg init empty-repo | $ hg init empty-repo | ||||
| $ cd empty-repo | $ cd empty-repo | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| exp-revlogv2.2 | exp-revlogv2.2 | ||||
| fncache | fncache | ||||
| revlog-compression-zstd (zstd !) | |||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| $ hg log | $ hg log | ||||
| Unknown flags to revlog are rejected | Unknown flags to revlog are rejected | ||||
| >>> with open('.hg/store/00changelog.i', 'wb') as fh: | >>> with open('.hg/store/00changelog.i', 'wb') as fh: | ||||
| unsupported feature: `rhg cat` without `--rev` / `-r` | unsupported feature: `rhg cat` without `--rev` / `-r` | ||||
| [252] | [252] | ||||
| Requirements | Requirements | ||||
| $ $NO_FALLBACK rhg debugrequirements | $ $NO_FALLBACK rhg debugrequirements | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| $ echo indoor-pool >> .hg/requires | $ echo indoor-pool >> .hg/requires | ||||
| $ $NO_FALLBACK rhg files | $ $NO_FALLBACK rhg files | ||||
| unsupported feature: repository requires feature unknown to this Mercurial: indoor-pool | unsupported feature: repository requires feature unknown to this Mercurial: indoor-pool | ||||
| [252] | [252] | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugformat -v -R up-no-side-data --config format.exp-use-side-data=yes | $ hg debugformat -v -R up-no-side-data --config format.exp-use-side-data=yes | ||||
| format-variant repo config default | format-variant repo config default | ||||
| fncache: yes yes yes | fncache: yes yes yes | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no yes no | revlog-v2: no yes no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugupgraderepo -R up-no-side-data --config format.exp-use-side-data=yes > /dev/null | $ hg debugupgraderepo -R up-no-side-data --config format.exp-use-side-data=yes > /dev/null | ||||
| Check that we can downgrade from sidedata | Check that we can downgrade from sidedata | ||||
| ----------------------------------------- | ----------------------------------------- | ||||
| $ hg init up-side-data --config format.exp-use-side-data=yes | $ hg init up-side-data --config format.exp-use-side-data=yes | ||||
| $ hg debugformat -v -R up-side-data | $ hg debugformat -v -R up-side-data | ||||
| format-variant repo config default | format-variant repo config default | ||||
| fncache: yes yes yes | fncache: yes yes yes | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: yes no no | revlog-v2: yes no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugformat -v -R up-side-data --config format.exp-use-side-data=no | $ hg debugformat -v -R up-side-data --config format.exp-use-side-data=no | ||||
| format-variant repo config default | format-variant repo config default | ||||
| fncache: yes yes yes | fncache: yes yes yes | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: yes no no | revlog-v2: yes no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugupgraderepo -R up-side-data --config format.exp-use-side-data=no > /dev/null | $ hg debugupgraderepo -R up-side-data --config format.exp-use-side-data=no > /dev/null | ||||
| $ hg commit -m 'commit 1' | $ hg commit -m 'commit 1' | ||||
| Enable sparse profile | Enable sparse profile | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| $ hg debugsparse --config extensions.sparse= --enable-profile frontend.sparse | $ hg debugsparse --config extensions.sparse= --enable-profile frontend.sparse | ||||
| $ ls -A | $ ls -A | ||||
| .hg | .hg | ||||
| a.html | a.html | ||||
| b.html | b.html | ||||
| Requirement for sparse added when sparse is enabled | Requirement for sparse added when sparse is enabled | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| exp-sparse | exp-sparse | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| Client without sparse enabled reacts properly | Client without sparse enabled reacts properly | ||||
| $ hg files | $ hg files | ||||
| abort: repository is using sparse feature but sparse is not enabled; enable the "sparse" extensions to access | abort: repository is using sparse feature but sparse is not enabled; enable the "sparse" extensions to access | ||||
| [255] | [255] | ||||
| Requirement for sparse is removed when sparse is disabled | Requirement for sparse is removed when sparse is disabled | ||||
| $ hg debugsparse --reset --config extensions.sparse= | $ hg debugsparse --reset --config extensions.sparse= | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| testonly-simplestore (reposimplestore !) | testonly-simplestore (reposimplestore !) | ||||
| And client without sparse can access | And client without sparse can access | ||||
| $ hg files | $ hg files | ||||
| a.html | a.html | ||||
| b.html | b.html | ||||
| c.py | c.py | ||||
| d.py | d.py | ||||
| frontend.sparse | frontend.sparse | ||||
| New repo should not use SQLite by default | New repo should not use SQLite by default | ||||
| $ hg init empty-no-sqlite | $ hg init empty-no-sqlite | ||||
| $ cat empty-no-sqlite/.hg/requires | $ cat empty-no-sqlite/.hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| storage.new-repo-backend=sqlite is recognized | storage.new-repo-backend=sqlite is recognized | ||||
| $ hg --config storage.new-repo-backend=sqlite init empty-sqlite | $ hg --config storage.new-repo-backend=sqlite init empty-sqlite | ||||
| $ cat empty-sqlite/.hg/requires | $ cat empty-sqlite/.hg/requires | ||||
| dotencode | dotencode | ||||
| exp-sqlite-001 | exp-sqlite-001 | ||||
| exp-sqlite-comp-001=zstd (zstd !) | exp-sqlite-comp-001=zstd (zstd !) | ||||
| exp-sqlite-comp-001=$BUNDLE2_COMPRESSIONS$ (no-zstd !) | exp-sqlite-comp-001=$BUNDLE2_COMPRESSIONS$ (no-zstd !) | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| $ cat >> $HGRCPATH << EOF | $ cat >> $HGRCPATH << EOF | ||||
| > [storage] | > [storage] | ||||
| > new-repo-backend = sqlite | > new-repo-backend = sqlite | ||||
| > EOF | > EOF | ||||
| Can force compression to zlib | Can force compression to zlib | ||||
| $ hg --config storage.sqlite.compression=zlib init empty-zlib | $ hg --config storage.sqlite.compression=zlib init empty-zlib | ||||
| $ cat empty-zlib/.hg/requires | $ cat empty-zlib/.hg/requires | ||||
| dotencode | dotencode | ||||
| exp-sqlite-001 | exp-sqlite-001 | ||||
| exp-sqlite-comp-001=$BUNDLE2_COMPRESSIONS$ | exp-sqlite-comp-001=$BUNDLE2_COMPRESSIONS$ | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| Can force compression to none | Can force compression to none | ||||
| $ hg --config storage.sqlite.compression=none init empty-none | $ hg --config storage.sqlite.compression=none init empty-none | ||||
| $ cat empty-none/.hg/requires | $ cat empty-none/.hg/requires | ||||
| dotencode | dotencode | ||||
| exp-sqlite-001 | exp-sqlite-001 | ||||
| exp-sqlite-comp-001=none | exp-sqlite-comp-001=none | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | |||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| Can make a local commit | Can make a local commit | ||||
| $ hg init local-commit | $ hg init local-commit | ||||
| $ cd local-commit | $ cd local-commit | ||||
| #endif | #endif | ||||
| clone remote via stream | clone remote via stream | ||||
| #if no-reposimplestore | #if no-reposimplestore | ||||
| $ hg clone -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" --stream ssh://user@dummy/remote local-stream | $ hg clone -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" --stream ssh://user@dummy/remote local-stream | ||||
| streaming all changes | streaming all changes | ||||
| 4 files to transfer, 602 bytes of data | 4 files to transfer, 602 bytes of data (no-zstd !) | ||||
| transferred 602 bytes in * seconds (*) (glob) | transferred 602 bytes in * seconds (*) (glob) (no-zstd !) | ||||
| 4 files to transfer, 621 bytes of data (zstd !) | |||||
| transferred 621 bytes 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 | ||||
| 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| $ cd local-stream | $ cd local-stream | ||||
| $ hg verify | $ hg verify | ||||
| checking changesets | checking changesets | ||||
| checking manifests | checking manifests | ||||
| crosschecking files in changesets and manifests | crosschecking files in changesets and manifests | ||||
| checking files | checking files | ||||
| checked 3 changesets with 2 changes to 2 files | checked 3 changesets with 2 changes to 2 files | ||||
| $ hg branches | $ hg branches | ||||
| default 0:1160648e36ce | default 0:1160648e36ce | ||||
| $ cd $TESTTMP | $ cd $TESTTMP | ||||
| clone bookmarks via stream | clone bookmarks via stream | ||||
| $ hg -R local-stream book mybook | $ hg -R local-stream book mybook | ||||
| $ hg clone -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" --stream ssh://user@dummy/local-stream stream2 | $ hg clone -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" --stream ssh://user@dummy/local-stream stream2 | ||||
| streaming all changes | streaming all changes | ||||
| 4 files to transfer, 602 bytes of data | 4 files to transfer, 602 bytes of data (no-zstd !) | ||||
| transferred 602 bytes in * seconds (*) (glob) | transferred 602 bytes in * seconds (*) (glob) (no-zstd !) | ||||
| 4 files to transfer, 621 bytes of data (zstd !) | |||||
| transferred 621 bytes 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 | ||||
| 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| $ cd stream2 | $ cd stream2 | ||||
| $ hg book | $ hg book | ||||
| mybook 0:1160648e36ce | mybook 0:1160648e36ce | ||||
| $ cd $TESTTMP | $ cd $TESTTMP | ||||
| [255] | [255] | ||||
| clone remote via stream | clone remote via stream | ||||
| #if no-reposimplestore | #if no-reposimplestore | ||||
| $ hg clone -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" --stream ssh://user@dummy/remote local-stream | $ hg clone -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" --stream ssh://user@dummy/remote local-stream | ||||
| streaming all changes | streaming all changes | ||||
| 8 files to transfer, 827 bytes of data | 8 files to transfer, 827 bytes of data (no-zstd !) | ||||
| transferred 827 bytes in * seconds (*) (glob) | transferred 827 bytes in * seconds (*) (glob) (no-zstd !) | ||||
| 8 files to transfer, 846 bytes of data (zstd !) | |||||
| transferred * bytes in * seconds (* */sec) (glob) (zstd !) | |||||
| updating to branch default | updating to branch default | ||||
| 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
| $ cd local-stream | $ cd local-stream | ||||
| $ hg verify | $ hg verify | ||||
| checking changesets | checking changesets | ||||
| checking manifests | checking manifests | ||||
| crosschecking files in changesets and manifests | crosschecking files in changesets and manifests | ||||
| checking files | checking files | ||||
| > B | > B | ||||
| > | | > | | ||||
| > A | > A | ||||
| > EOF | > EOF | ||||
| $ hg bundle -a --type="none-v2;stream=v2" bundle.hg | $ hg bundle -a --type="none-v2;stream=v2" bundle.hg | ||||
| $ hg debugbundle bundle.hg | $ hg debugbundle bundle.hg | ||||
| Stream params: {} | Stream params: {} | ||||
| stream2 -- {bytecount: 1693, filecount: 11, requirements: dotencode%2Cfncache%2Cgeneraldelta%2Crevlogv1%2Csparserevlog%2Cstore} (mandatory: True) | stream2 -- {bytecount: 1693, filecount: 11, requirements: dotencode%2Cfncache%2Cgeneraldelta%2Crevlogv1%2Csparserevlog%2Cstore} (mandatory: True) (no-zstd !) | ||||
| stream2 -- {bytecount: 1693, filecount: 11, requirements: dotencode%2Cfncache%2Cgeneraldelta%2Crevlog-compression-zstd%2Crevlogv1%2Csparserevlog%2Cstore} (mandatory: True) (zstd !) | |||||
| $ hg debugbundle --spec bundle.hg | $ hg debugbundle --spec bundle.hg | ||||
| none-v2;stream=v2;requirements%3Ddotencode%2Cfncache%2Cgeneraldelta%2Crevlogv1%2Csparserevlog%2Cstore | none-v2;stream=v2;requirements%3Ddotencode%2Cfncache%2Cgeneraldelta%2Crevlogv1%2Csparserevlog%2Cstore (no-zstd !) | ||||
| none-v2;stream=v2;requirements%3Ddotencode%2Cfncache%2Cgeneraldelta%2Crevlog-compression-zstd%2Crevlogv1%2Csparserevlog%2Cstore (zstd !) | |||||
| Test that we can apply the bundle as a stream clone bundle | Test that we can apply the bundle as a stream clone bundle | ||||
| $ cat > .hg/clonebundles.manifest << EOF | $ cat > .hg/clonebundles.manifest << EOF | ||||
| > http://localhost:$HGPORT1/bundle.hg BUNDLESPEC=`hg debugbundle --spec bundle.hg` | > http://localhost:$HGPORT1/bundle.hg BUNDLESPEC=`hg debugbundle --spec bundle.hg` | ||||
| > EOF | > EOF | ||||
| $ hg serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log | $ hg serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log | ||||
| checking manifests | checking manifests | ||||
| checking directory manifests | checking directory manifests | ||||
| crosschecking files in changesets and manifests | crosschecking files in changesets and manifests | ||||
| checking files | checking files | ||||
| checked 4 changesets with 18 changes to 8 files | checked 4 changesets with 18 changes to 8 files | ||||
| Packed bundle | Packed bundle | ||||
| $ hg -R deeprepo debugcreatestreamclonebundle repo-packed.hg | $ hg -R deeprepo debugcreatestreamclonebundle repo-packed.hg | ||||
| writing 5330 bytes for 18 files | writing 5330 bytes for 18 files (no-zstd !) | ||||
| writing 5400 bytes for 18 files (zstd !) | |||||
| bundle requirements: generaldelta, revlogv1, sparserevlog, treemanifest | bundle requirements: generaldelta, revlogv1, sparserevlog, treemanifest | ||||
| $ hg debugbundle --spec repo-packed.hg | $ hg debugbundle --spec repo-packed.hg | ||||
| none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Csparserevlog%2Ctreemanifest | none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Csparserevlog%2Ctreemanifest | ||||
| #endif | #endif | ||||
| Bundle with changegroup2 is not supported | Bundle with changegroup2 is not supported | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zlib zlib zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugformat --verbose --config format.usefncache=no | $ hg debugformat --verbose --config format.usefncache=no | ||||
| format-variant repo config default | format-variant repo config default | ||||
| fncache: yes no yes | fncache: yes no yes | ||||
| dotencode: yes no yes | dotencode: yes no yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zlib zlib zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugformat --verbose --config format.usefncache=no --color=debug | $ hg debugformat --verbose --config format.usefncache=no --color=debug | ||||
| format-variant repo config default | format-variant repo config default | ||||
| [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes] | [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes] | ||||
| [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes] | [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| yes][formatvariant.config.special| no][formatvariant.default| yes] | ||||
| [formatvariant.name.uptodate|generaldelta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | [formatvariant.name.uptodate|generaldelta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | ||||
| [formatvariant.name.uptodate|share-safe: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | [formatvariant.name.uptodate|share-safe: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | ||||
| [formatvariant.name.uptodate|sparserevlog: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | [formatvariant.name.uptodate|sparserevlog: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | ||||
| [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | ||||
| [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | ||||
| [formatvariant.name.uptodate|revlog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | [formatvariant.name.uptodate|revlog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | ||||
| [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | ||||
| [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib] | [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib] (no-zstd !) | ||||
| [formatvariant.name.mismatchdefault|compression: ][formatvariant.repo.mismatchdefault| zlib][formatvariant.config.special| zlib][formatvariant.default| zstd] (zstd !) | |||||
| [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default] | [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default] | ||||
| $ hg debugformat -Tjson | $ hg debugformat -Tjson | ||||
| [ | [ | ||||
| { | { | ||||
| "config": true, | "config": true, | ||||
| "default": true, | "default": true, | ||||
| "name": "fncache", | "name": "fncache", | ||||
| "repo": true | "repo": true | ||||
| { | { | ||||
| "config": true, | "config": true, | ||||
| "default": true, | "default": true, | ||||
| "name": "plain-cl-delta", | "name": "plain-cl-delta", | ||||
| "repo": true | "repo": true | ||||
| }, | }, | ||||
| { | { | ||||
| "config": "zlib", | "config": "zlib", | ||||
| "default": "zlib", | "default": "zlib", (no-zstd !) | ||||
| "default": "zstd", (zstd !) | |||||
| "name": "compression", | "name": "compression", | ||||
| "repo": "zlib" | "repo": "zlib" | ||||
| }, | }, | ||||
| { | { | ||||
| "config": "default", | "config": "default", | ||||
| "default": "default", | "default": "default", | ||||
| "name": "compression-level", | "name": "compression-level", | ||||
| "repo": "default" | "repo": "default" | ||||
| dotencode: no yes yes | dotencode: no yes yes | ||||
| generaldelta: no yes yes | generaldelta: no yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: no yes yes | sparserevlog: no yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zlib zlib zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugformat --verbose --config format.usegeneraldelta=no | $ hg debugformat --verbose --config format.usegeneraldelta=no | ||||
| format-variant repo config default | format-variant repo config default | ||||
| fncache: no yes yes | fncache: no yes yes | ||||
| dotencode: no yes yes | dotencode: no yes yes | ||||
| generaldelta: no no yes | generaldelta: no no yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: no no yes | sparserevlog: no no yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zlib zlib zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug | $ hg debugformat --verbose --config format.usegeneraldelta=no --color=debug | ||||
| format-variant repo config default | format-variant repo config default | ||||
| [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] | [formatvariant.name.mismatchconfig|fncache: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] | ||||
| [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] | [formatvariant.name.mismatchconfig|dotencode: ][formatvariant.repo.mismatchconfig| no][formatvariant.config.default| yes][formatvariant.default| yes] | ||||
| [formatvariant.name.mismatchdefault|generaldelta: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes] | [formatvariant.name.mismatchdefault|generaldelta: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes] | ||||
| [formatvariant.name.uptodate|share-safe: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | [formatvariant.name.uptodate|share-safe: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | ||||
| [formatvariant.name.mismatchdefault|sparserevlog: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes] | [formatvariant.name.mismatchdefault|sparserevlog: ][formatvariant.repo.mismatchdefault| no][formatvariant.config.special| no][formatvariant.default| yes] | ||||
| [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | [formatvariant.name.uptodate|persistent-nodemap:][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | ||||
| [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | [formatvariant.name.uptodate|copies-sdc: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | ||||
| [formatvariant.name.uptodate|revlog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | [formatvariant.name.uptodate|revlog-v2: ][formatvariant.repo.uptodate| no][formatvariant.config.default| no][formatvariant.default| no] | ||||
| [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | [formatvariant.name.uptodate|plain-cl-delta: ][formatvariant.repo.uptodate| yes][formatvariant.config.default| yes][formatvariant.default| yes] | ||||
| [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib] | [formatvariant.name.uptodate|compression: ][formatvariant.repo.uptodate| zlib][formatvariant.config.default| zlib][formatvariant.default| zlib] (no-zstd !) | ||||
| [formatvariant.name.mismatchdefault|compression: ][formatvariant.repo.mismatchdefault| zlib][formatvariant.config.special| zlib][formatvariant.default| zstd] (zstd !) | |||||
| [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default] | [formatvariant.name.uptodate|compression-level: ][formatvariant.repo.uptodate| default][formatvariant.config.default| default][formatvariant.default| default] | ||||
| $ hg debugupgraderepo | $ hg debugupgraderepo | ||||
| repository lacks features recommended by current config options: | repository lacks features recommended by current config options: | ||||
| fncache | fncache | ||||
| long and reserved filenames may not work correctly; repository performance is sub-optimal | long and reserved filenames may not work correctly; repository performance is sub-optimal | ||||
| dotencode | dotencode | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zstd zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zlib zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd | revlog-compression-zstd | ||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zlib zlib zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| dotencode: yes yes yes | dotencode: yes yes yes | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zstd zstd zlib | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zstd (zstd !) | |||||
| compression-level: default default default | compression-level: default default default | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd | revlog-compression-zstd | ||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: yes no no | revlog-v2: yes no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib (no-zstd !) | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zlib (zstd !) | compression: zstd zstd zstd (zstd !) | ||||
| compression-level: default default default | compression-level: default default default | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| exp-revlogv2.2 | exp-revlogv2.2 | ||||
| exp-sidedata-flag | exp-sidedata-flag | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | revlog-compression-zstd (zstd !) | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: no no no | revlog-v2: no no no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib (no-zstd !) | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zlib (zstd !) | compression: zstd zstd zstd (zstd !) | ||||
| compression-level: default default default | compression-level: default default default | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | revlog-compression-zstd (zstd !) | ||||
| revlogv1 | revlogv1 | ||||
| sparserevlog | sparserevlog | ||||
| generaldelta: yes yes yes | generaldelta: yes yes yes | ||||
| share-safe: no no no | share-safe: no no no | ||||
| sparserevlog: yes yes yes | sparserevlog: yes yes yes | ||||
| persistent-nodemap: no no no | persistent-nodemap: no no no | ||||
| copies-sdc: no no no | copies-sdc: no no no | ||||
| revlog-v2: yes yes no | revlog-v2: yes yes no | ||||
| plain-cl-delta: yes yes yes | plain-cl-delta: yes yes yes | ||||
| compression: zlib zlib zlib (no-zstd !) | compression: zlib zlib zlib (no-zstd !) | ||||
| compression: zstd zstd zlib (zstd !) | compression: zstd zstd zstd (zstd !) | ||||
| compression-level: default default default | compression-level: default default default | ||||
| $ cat .hg/requires | $ cat .hg/requires | ||||
| dotencode | dotencode | ||||
| exp-revlogv2.2 | exp-revlogv2.2 | ||||
| exp-sidedata-flag | exp-sidedata-flag | ||||
| fncache | fncache | ||||
| generaldelta | generaldelta | ||||
| revlog-compression-zstd (zstd !) | revlog-compression-zstd (zstd !) | ||||
| sparserevlog | sparserevlog | ||||
| store | store | ||||
| $ hg debugsidedata -c 0 | $ hg debugsidedata -c 0 | ||||
| Demonstrate that nothing to perform upgrade will still run all the way through | Demonstrate that nothing to perform upgrade will still run all the way through | ||||
| $ hg debugupgraderepo --run | $ hg debugupgraderepo --run | ||||
| nothing to do | nothing to do | ||||
| > command rawstorefiledata | > command rawstorefiledata | ||||
| > files eval:[b'changelog'] | > files eval:[b'changelog'] | ||||
| > EOF | > EOF | ||||
| creating http peer for wire protocol version 2 | creating http peer for wire protocol version 2 | ||||
| sending rawstorefiledata command | sending rawstorefiledata command | ||||
| response: gen[ | response: gen[ | ||||
| { | { | ||||
| b'filecount': 1, | b'filecount': 1, | ||||
| b'totalsize': 527 | b'totalsize': 527 (no-zstd !) | ||||
| b'totalsize': 530 (zstd !) | |||||
| }, | }, | ||||
| { | { | ||||
| b'location': b'store', | b'location': b'store', | ||||
| b'path': b'00changelog.i', | b'path': b'00changelog.i', | ||||
| b'size': 527 | b'size': 527 (no-zstd !) | ||||
| b'size': 530 (zstd !) | |||||
| }, | }, | ||||
| b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00N\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xc5\xc1\t\xc0 \x0c\x05\xd0{\xa6p\x03cjI\xd71\xf9\x11<H\xa1u\x7fJ\xf1]\x9eyu\x98\xa2\xb0Z\x88jk0\x11\x95z\xa0\xdb\x11\\\x81S\xfc*\xb4\xe2]\xc4\x89\t\xe3\xe1\xec;\xfc\x95\x1c\xbbN\xe4\xf7\x9cc%\xf9\x00S#\x19\x13\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3', | b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00N\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xc5\xc1\t\xc0 \x0c\x05\xd0{\xa6p\x03cjI\xd71\xf9\x11<H\xa1u\x7fJ\xf1]\x9eyu\x98\xa2\xb0Z\x88jk0\x11\x95z\xa0\xdb\x11\\\x81S\xfc*\xb4\xe2]\xc4\x89\t\xe3\xe1\xec;\xfc\x95\x1c\xbbN\xe4\xf7\x9cc%\xf9\x00S#\x19\x13\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3', (no-zstd !) | ||||
| b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00Q\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd WE\x02\x00r\x04\x0f\x14\x90\x01\x0e#\xf7h$;NQC%\xf8f\xd7\xb1\x81\x8d+\x01\x16+)5\xa8\x19\xdaA\xae\xe3\x00\xe9v\xe2l\x05v\x19\x11\xd4\xc1onK\xa2\x17c\xb4\xf3\xe7 z\x13\x8f\x1c\xf3j4\x03\x03\x00`\x06\x84\x8b\x1a\n\x14\x00\x00\x00\x00\x00\xcf\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3', (zstd !) | |||||
| b'' | b'' | ||||
| ] | ] | ||||
| Requesting just manifestlog works (as impractical as that operation may be). | Requesting just manifestlog works (as impractical as that operation may be). | ||||
| $ sendhttpv2peer << EOF | $ sendhttpv2peer << EOF | ||||
| > command rawstorefiledata | > command rawstorefiledata | ||||
| > files eval:[b'manifestlog'] | > files eval:[b'manifestlog'] | ||||
| > EOF | > EOF | ||||
| creating http peer for wire protocol version 2 | creating http peer for wire protocol version 2 | ||||
| sending rawstorefiledata command | sending rawstorefiledata command | ||||
| response: gen[ | response: gen[ | ||||
| { | { | ||||
| b'filecount': 1, | b'filecount': 1, | ||||
| b'totalsize': 584 | b'totalsize': 584 (no-zstd !) | ||||
| b'totalsize': 588 (zstd !) | |||||
| }, | }, | ||||
| { | { | ||||
| b'location': b'store', | b'location': b'store', | ||||
| b'path': b'00manifest.i', | b'path': b'00manifest.i', | ||||
| b'size': 584 | b'size': 584 (no-zstd !) | ||||
| b'size': 588 (zstd !) | |||||
| }, | }, | ||||
| b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00I\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c\r\xca\xc1\x11\x00!\x08\x040\xdfV\x03+\xa2\x94\xb3\x8c\xd0\x7f\twy\x87\x03i\x95r\x96F6\xe5\x1c\x9a\x10-\x16\xba|\x07\xab\xe5\xd1\xf08s\\\x8d\xc2\xbeo)w\xa9\x8b;\xa2\xff\x95\x19\x02jB\xab\x0c\xea\xf3\x03\xcf\x1d\x16\t\x00\x00\x00\x00\x00I\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x8c\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xcd\xb9\rB1\x10\x00Q\xc7\xbf\x19\xf6\xb6\xdd\x08\xb9\xf7\x92H\xa9\x90\xd2\xb8\x82\xc9\x9e4c\x8c\xfb\xf8\xf7\xca\xc7\x13n16\x8a\x88\xb2\xd8\x818`\xb4=eF\xb9f\x17\xcc\x92\x94hR\xc0\xeb\xe7s(/\x02\xcb\xd8\x13K\tU m\t\x1f\xef\xb2D\x03\xa6\xb6\x14\xb2\xaf\xc7[\rw?\x16`\xce\xd0"\x9c,\xddK\xd0c/\rIX4\xc3\xbc\xe4\xef{ u\xcc\x8c\x9c\x93]\x0f\x9cM;\n\xb7\x12-X\x1c\x96\x9fuT\xc8\xf5\x06\x88\xa25W\x00\x00\x00\x00\x01\x0c\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n', | b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00I\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c\r\xca\xc1\x11\x00!\x08\x040\xdfV\x03+\xa2\x94\xb3\x8c\xd0\x7f\twy\x87\x03i\x95r\x96F6\xe5\x1c\x9a\x10-\x16\xba|\x07\xab\xe5\xd1\xf08s\\\x8d\xc2\xbeo)w\xa9\x8b;\xa2\xff\x95\x19\x02jB\xab\x0c\xea\xf3\x03\xcf\x1d\x16\t\x00\x00\x00\x00\x00I\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x8c\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xcd\xb9\rB1\x10\x00Q\xc7\xbf\x19\xf6\xb6\xdd\x08\xb9\xf7\x92H\xa9\x90\xd2\xb8\x82\xc9\x9e4c\x8c\xfb\xf8\xf7\xca\xc7\x13n16\x8a\x88\xb2\xd8\x818`\xb4=eF\xb9f\x17\xcc\x92\x94hR\xc0\xeb\xe7s(/\x02\xcb\xd8\x13K\tU m\t\x1f\xef\xb2D\x03\xa6\xb6\x14\xb2\xaf\xc7[\rw?\x16`\xce\xd0"\x9c,\xddK\xd0c/\rIX4\xc3\xbc\xe4\xef{ u\xcc\x8c\x9c\x93]\x0f\x9cM;\n\xb7\x12-X\x1c\x96\x9fuT\xc8\xf5\x06\x88\xa25W\x00\x00\x00\x00\x01\x0c\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n', (no-zstd !) | ||||
| b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00H\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd V\xfd\x01\x00b\xc5\x0e\x0f\xc0\xd1\x00\xfb\x0c\xb9\xca\xdf\xb2R\xba!\xf2\xf6\x1d\x80\xd5\x95Yc\xef9DaT\xcefcM\xf1\x12\t\x84\xf3\x1a\x04\x04N\\\'S\xf2\'\x8cz5\xc5\x9f\xfa\x18\xf3\x82W\x1a\x83Y\xe8\xf0\x00\x00\x00\x00\x00\x00H\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x91\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd \xccE\x04\x00bK\x1e\x17\xb0A0\xff\xff\x9b\xb5V\x99\x99\xfa\xb6\xae\xf5n),"\xf1\n\x02\xb5\x07\x82++\xd1]T\x1b3\xaa\x8e\x10+)R\xa6\\\x9a\x10\xab+\xb4\x8bB\x9f\x13U\xd4\x98\xbd\xde \x9a\xf4\xd1}[\xfb{,q\x14Kf\x06\x1e\x10\xd6\x17\xbbl\x90\x16\xb9\xb3\xd8\x07\xee\xfc\xa8\x8eI\x10]\x9c\x1ava\x054W\xad\xdf\xb3\x18\xee\xbdd\x15\xdf$\x85St\n\xde\xee?\x91\xa0\x83\x11\x08\xd8\x01\x80\x10B\x04\x00\x04S\x04B\xc7Tw\x9f\xb9,\x00\x00\x00\x00\x01\x10\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n', (zstd !) | |||||
| b'' | b'' | ||||
| ] | ] | ||||
| Requesting both changelog and manifestlog works. | Requesting both changelog and manifestlog works. | ||||
| $ sendhttpv2peer << EOF | $ sendhttpv2peer << EOF | ||||
| > command rawstorefiledata | > command rawstorefiledata | ||||
| > files eval:[b'changelog', b'manifestlog'] | > files eval:[b'changelog', b'manifestlog'] | ||||
| > EOF | > EOF | ||||
| creating http peer for wire protocol version 2 | creating http peer for wire protocol version 2 | ||||
| sending rawstorefiledata command | sending rawstorefiledata command | ||||
| response: gen[ | response: gen[ | ||||
| { | { | ||||
| b'filecount': 2, | b'filecount': 2, | ||||
| b'totalsize': 1111 | b'totalsize': 1111 (no-zstd !) | ||||
| b'totalsize': 1118 (zstd !) | |||||
| }, | }, | ||||
| { | { | ||||
| b'location': b'store', | b'location': b'store', | ||||
| b'path': b'00manifest.i', | b'path': b'00manifest.i', | ||||
| b'size': 584 | b'size': 584 (no-zstd !) | ||||
| b'size': 588 (zstd !) | |||||
| }, | }, | ||||
| b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00I\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c\r\xca\xc1\x11\x00!\x08\x040\xdfV\x03+\xa2\x94\xb3\x8c\xd0\x7f\twy\x87\x03i\x95r\x96F6\xe5\x1c\x9a\x10-\x16\xba|\x07\xab\xe5\xd1\xf08s\\\x8d\xc2\xbeo)w\xa9\x8b;\xa2\xff\x95\x19\x02jB\xab\x0c\xea\xf3\x03\xcf\x1d\x16\t\x00\x00\x00\x00\x00I\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x8c\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xcd\xb9\rB1\x10\x00Q\xc7\xbf\x19\xf6\xb6\xdd\x08\xb9\xf7\x92H\xa9\x90\xd2\xb8\x82\xc9\x9e4c\x8c\xfb\xf8\xf7\xca\xc7\x13n16\x8a\x88\xb2\xd8\x818`\xb4=eF\xb9f\x17\xcc\x92\x94hR\xc0\xeb\xe7s(/\x02\xcb\xd8\x13K\tU m\t\x1f\xef\xb2D\x03\xa6\xb6\x14\xb2\xaf\xc7[\rw?\x16`\xce\xd0"\x9c,\xddK\xd0c/\rIX4\xc3\xbc\xe4\xef{ u\xcc\x8c\x9c\x93]\x0f\x9cM;\n\xb7\x12-X\x1c\x96\x9fuT\xc8\xf5\x06\x88\xa25W\x00\x00\x00\x00\x01\x0c\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n', | b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00I\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c\r\xca\xc1\x11\x00!\x08\x040\xdfV\x03+\xa2\x94\xb3\x8c\xd0\x7f\twy\x87\x03i\x95r\x96F6\xe5\x1c\x9a\x10-\x16\xba|\x07\xab\xe5\xd1\xf08s\\\x8d\xc2\xbeo)w\xa9\x8b;\xa2\xff\x95\x19\x02jB\xab\x0c\xea\xf3\x03\xcf\x1d\x16\t\x00\x00\x00\x00\x00I\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x8c\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xcd\xb9\rB1\x10\x00Q\xc7\xbf\x19\xf6\xb6\xdd\x08\xb9\xf7\x92H\xa9\x90\xd2\xb8\x82\xc9\x9e4c\x8c\xfb\xf8\xf7\xca\xc7\x13n16\x8a\x88\xb2\xd8\x818`\xb4=eF\xb9f\x17\xcc\x92\x94hR\xc0\xeb\xe7s(/\x02\xcb\xd8\x13K\tU m\t\x1f\xef\xb2D\x03\xa6\xb6\x14\xb2\xaf\xc7[\rw?\x16`\xce\xd0"\x9c,\xddK\xd0c/\rIX4\xc3\xbc\xe4\xef{ u\xcc\x8c\x9c\x93]\x0f\x9cM;\n\xb7\x12-X\x1c\x96\x9fuT\xc8\xf5\x06\x88\xa25W\x00\x00\x00\x00\x01\x0c\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n', (no-zstd !) | ||||
| b'\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00\x00H\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x99/Gy\x02\x9a=\xf8\xd0fm\x00\xbb\x92OicN&A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd V\xfd\x01\x00b\xc5\x0e\x0f\xc0\xd1\x00\xfb\x0c\xb9\xca\xdf\xb2R\xba!\xf2\xf6\x1d\x80\xd5\x95Yc\xef9DaT\xcefcM\xf1\x12\t\x84\xf3\x1a\x04\x04N\\\'S\xf2\'\x8cz5\xc5\x9f\xfa\x18\xf3\x82W\x1a\x83Y\xe8\xf0\x00\x00\x00\x00\x00\x00H\x00\x00\x00\x00\x007\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\xa9\x88\xfbCX>\x87\x1d\x1e\xd5u\x0e\xe0t\xc6\xd8@\xbb\xbf\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00\x00\x00+a\x009a38122997b3ac97be2a9aa2e556838341fdf2cc\n\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x91\x00\x00\x01\x16\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xbcL\xdb}\x10{\xe2w\xaa\xdb"rC\xdf\xb3\xe0M\xd5,\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd \xccE\x04\x00bK\x1e\x17\xb0A0\xff\xff\x9b\xb5V\x99\x99\xfa\xb6\xae\xf5n),"\xf1\n\x02\xb5\x07\x82++\xd1]T\x1b3\xaa\x8e\x10+)R\xa6\\\x9a\x10\xab+\xb4\x8bB\x9f\x13U\xd4\x98\xbd\xde \x9a\xf4\xd1}[\xfb{,q\x14Kf\x06\x1e\x10\xd6\x17\xbbl\x90\x16\xb9\xb3\xd8\x07\xee\xfc\xa8\x8eI\x10]\x9c\x1ava\x054W\xad\xdf\xb3\x18\xee\xbdd\x15\xdf$\x85St\n\xde\xee?\x91\xa0\x83\x11\x08\xd8\x01\x80\x10B\x04\x00\x04S\x04B\xc7Tw\x9f\xb9,\x00\x00\x00\x00\x01\x10\x00\x00\x00\x00\x00<\x00\x00\x01\x16\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x90#\x1d\xdc\xa3o\xa1x\xa0\xee\xd9\x9b\xd00x\x11$\x87\xdd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\x00\x01\x16\x00\x00\x000dir1/f\x0028c776ae08d0d55eb40648b401b90ff54448348e\n', (zstd !) | |||||
| b'', | b'', | ||||
| { | { | ||||
| b'location': b'store', | b'location': b'store', | ||||
| b'path': b'00changelog.i', | b'path': b'00changelog.i', | ||||
| b'size': 527 | b'size': 527 (no-zstd !) | ||||
| b'size': 530 (zstd !) | |||||
| }, | }, | ||||
| b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00N\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xc5\xc1\t\xc0 \x0c\x05\xd0{\xa6p\x03cjI\xd71\xf9\x11<H\xa1u\x7fJ\xf1]\x9eyu\x98\xa2\xb0Z\x88jk0\x11\x95z\xa0\xdb\x11\\\x81S\xfc*\xb4\xe2]\xc4\x89\t\xe3\xe1\xec;\xfc\x95\x1c\xbbN\xe4\xf7\x9cc%\xf9\x00S#\x19\x13\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3', | b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00N\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x9c%\xc5\xc1\t\xc0 \x0c\x05\xd0{\xa6p\x03cjI\xd71\xf9\x11<H\xa1u\x7fJ\xf1]\x9eyu\x98\xa2\xb0Z\x88jk0\x11\x95z\xa0\xdb\x11\\\x81S\xfc*\xb4\xe2]\xc4\x89\t\xe3\xe1\xec;\xfc\x95\x1c\xbbN\xe4\xf7\x9cc%\xf9\x00S#\x19\x13\x00\x00\x00\x00\x00\xcc\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3', (no-zstd !) | ||||
| b'\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00?\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff3\x90\xef\x85\x00s\xfb\xc2\xf0\xdf\xff"D4,\x8e\x92)\x01:\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u992f4779029a3df8d0666d00bb924f69634e2641\ntest\n0 0\na\nb\n\ncommit 0\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00>\x00\x00\x00=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xffD2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ua988fb43583e871d1ed5750ee074c6d840bbbfc8\ntest\n0 0\na\n\ncommit 1\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00Q\x00\x00\x00W\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\xff\xff\xff\xff\xa4r\xd2\xea\x96U\x1a\x1e\xbb\x011-\xb2\xe6\xa7\x86\xd0F\x96o\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00(\xb5/\xfd WE\x02\x00r\x04\x0f\x14\x90\x01\x0e#\xf7h$;NQC%\xf8f\xd7\xb1\x81\x8d+\x01\x16+)5\xa8\x19\xdaA\xae\xe3\x00\xe9v\xe2l\x05v\x19\x11\xd4\xc1onK\xa2\x17c\xb4\xf3\xe7 z\x13\x8f\x1c\xf3j4\x03\x03\x00`\x06\x84\x8b\x1a\n\x14\x00\x00\x00\x00\x00\xcf\x00\x00\x00\x00\x00C\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x02\xff\xff\xff\xff\x85kg{\x94a\x12i\xc5lW5[\x85\xf9\x95|\xfc\xc1\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u90231ddca36fa178a0eed99bd03078112487dda3\ntest\n0 0\ndir1/f\n\ncommit 3', (zstd !) | |||||
| b'' | b'' | ||||
| ] | ] | ||||
| $ cat error.log | $ cat error.log | ||||
| ] | ] | ||||
| } | } | ||||
| updating the branch cache | updating the branch cache | ||||
| (sent 5 HTTP requests and * bytes; received * bytes in responses) (glob) | (sent 5 HTTP requests and * bytes; received * bytes in responses) (glob) | ||||
| $ cat clone-output | grep "received frame" | $ cat clone-output | grep "received frame" | ||||
| received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos) | received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos) | ||||
| received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||||
| received frame(size=1275; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=1275; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) (no-zstd !) | ||||
| received frame(size=1283; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) (zstd !) | |||||
| received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos) | received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos) | ||||
| received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos) | received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos) | ||||
| received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||||
| received frame(size=22; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=22; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||||
| received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos) | received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos) | ||||
| received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||||
| received frame(size=2; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=2; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||||
| received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos) | received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos) | ||||
| ] | ] | ||||
| } | } | ||||
| updating the branch cache | updating the branch cache | ||||
| (sent 5 HTTP requests and * bytes; received * bytes in responses) (glob) | (sent 5 HTTP requests and * bytes; received * bytes in responses) (glob) | ||||
| $ cat clone-output | grep "received frame" | $ cat clone-output | grep "received frame" | ||||
| received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos) | received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos) | ||||
| received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||||
| received frame(size=1275; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=1275; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) (no-zstd !) | ||||
| received frame(size=1283; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) (zstd !) | |||||
| received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos) | received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos) | ||||
| received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos) | received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos) | ||||
| received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||||
| received frame(size=22; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=22; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||||
| received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos) | received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos) | ||||
| received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||||
| received frame(size=2; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation) | received frame(size=2; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation) | ||||
| received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos) | received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos) | ||||