##// END OF EJS Templates
stream-clone-test: factor some piece of basic clone test out...
marmoute -
r52366:a72ab2ec default
parent child Browse files
Show More
@@ -1,887 +1,885 b''
1 #require serve no-reposimplestore no-chg
1 #require serve no-reposimplestore no-chg
2
2
3 #testcases stream-legacy stream-bundle2-v2 stream-bundle2-v3
3 #testcases stream-legacy stream-bundle2-v2 stream-bundle2-v3
4
4
5 #if stream-legacy
5 #if stream-legacy
6 $ cat << EOF >> $HGRCPATH
6 $ cat << EOF >> $HGRCPATH
7 > [server]
7 > [server]
8 > bundle2.stream = no
8 > bundle2.stream = no
9 > [format]
9 > [format]
10 > # persistent nodemap is too broken with legacy format,
10 > # persistent nodemap is too broken with legacy format,
11 > # however client with nodemap support will have better stream support.
11 > # however client with nodemap support will have better stream support.
12 > use-persistent-nodemap=no
12 > use-persistent-nodemap=no
13 > EOF
13 > EOF
14 #endif
14 #endif
15 #if stream-bundle2-v3
15 #if stream-bundle2-v3
16 $ cat << EOF >> $HGRCPATH
16 $ cat << EOF >> $HGRCPATH
17 > [experimental]
17 > [experimental]
18 > stream-v3 = yes
18 > stream-v3 = yes
19 > EOF
19 > EOF
20 #endif
20 #endif
21
21
22 Initialize repository
22 Initialize repository
23
23
24 $ hg init server
24 $ hg init server
25 $ cd server
25 $ cd server
26 $ sh $TESTDIR/testlib/stream_clone_setup.sh
26 $ sh $TESTDIR/testlib/stream_clone_setup.sh
27 adding 00changelog-ab349180a0405010.nd
27 adding 00changelog-ab349180a0405010.nd
28 adding 00changelog.d
28 adding 00changelog.d
29 adding 00changelog.i
29 adding 00changelog.i
30 adding 00changelog.n
30 adding 00changelog.n
31 adding 00manifest.d
31 adding 00manifest.d
32 adding 00manifest.i
32 adding 00manifest.i
33 adding container/isam-build-centos7/bazel-coverage-generator-sandboxfs-compatibility-0758e3e4f6057904d44399bd666faba9e7f40686.patch
33 adding container/isam-build-centos7/bazel-coverage-generator-sandboxfs-compatibility-0758e3e4f6057904d44399bd666faba9e7f40686.patch
34 adding data/foo.d
34 adding data/foo.d
35 adding data/foo.i
35 adding data/foo.i
36 adding data/foo.n
36 adding data/foo.n
37 adding data/undo.babar
37 adding data/undo.babar
38 adding data/undo.d
38 adding data/undo.d
39 adding data/undo.foo.d
39 adding data/undo.foo.d
40 adding data/undo.foo.i
40 adding data/undo.foo.i
41 adding data/undo.foo.n
41 adding data/undo.foo.n
42 adding data/undo.i
42 adding data/undo.i
43 adding data/undo.n
43 adding data/undo.n
44 adding data/undo.py
44 adding data/undo.py
45 adding foo.d
45 adding foo.d
46 adding foo.i
46 adding foo.i
47 adding foo.n
47 adding foo.n
48 adding meta/foo.d
48 adding meta/foo.d
49 adding meta/foo.i
49 adding meta/foo.i
50 adding meta/foo.n
50 adding meta/foo.n
51 adding meta/undo.babar
51 adding meta/undo.babar
52 adding meta/undo.d
52 adding meta/undo.d
53 adding meta/undo.foo.d
53 adding meta/undo.foo.d
54 adding meta/undo.foo.i
54 adding meta/undo.foo.i
55 adding meta/undo.foo.n
55 adding meta/undo.foo.n
56 adding meta/undo.i
56 adding meta/undo.i
57 adding meta/undo.n
57 adding meta/undo.n
58 adding meta/undo.py
58 adding meta/undo.py
59 adding savanah/foo.d
59 adding savanah/foo.d
60 adding savanah/foo.i
60 adding savanah/foo.i
61 adding savanah/foo.n
61 adding savanah/foo.n
62 adding savanah/undo.babar
62 adding savanah/undo.babar
63 adding savanah/undo.d
63 adding savanah/undo.d
64 adding savanah/undo.foo.d
64 adding savanah/undo.foo.d
65 adding savanah/undo.foo.i
65 adding savanah/undo.foo.i
66 adding savanah/undo.foo.n
66 adding savanah/undo.foo.n
67 adding savanah/undo.i
67 adding savanah/undo.i
68 adding savanah/undo.n
68 adding savanah/undo.n
69 adding savanah/undo.py
69 adding savanah/undo.py
70 adding store/C\xc3\xa9lesteVille_is_a_Capital_City (esc)
70 adding store/C\xc3\xa9lesteVille_is_a_Capital_City (esc)
71 adding store/foo.d
71 adding store/foo.d
72 adding store/foo.i
72 adding store/foo.i
73 adding store/foo.n
73 adding store/foo.n
74 adding store/undo.babar
74 adding store/undo.babar
75 adding store/undo.d
75 adding store/undo.d
76 adding store/undo.foo.d
76 adding store/undo.foo.d
77 adding store/undo.foo.i
77 adding store/undo.foo.i
78 adding store/undo.foo.n
78 adding store/undo.foo.n
79 adding store/undo.i
79 adding store/undo.i
80 adding store/undo.n
80 adding store/undo.n
81 adding store/undo.py
81 adding store/undo.py
82 adding undo.babar
82 adding undo.babar
83 adding undo.d
83 adding undo.d
84 adding undo.foo.d
84 adding undo.foo.d
85 adding undo.foo.i
85 adding undo.foo.i
86 adding undo.foo.n
86 adding undo.foo.n
87 adding undo.i
87 adding undo.i
88 adding undo.n
88 adding undo.n
89 adding undo.py
89 adding undo.py
90
90
91 $ hg --config server.uncompressed=false serve -p $HGPORT -d --pid-file=hg.pid
91 $ hg --config server.uncompressed=false serve -p $HGPORT -d --pid-file=hg.pid
92 $ cat hg.pid > $DAEMON_PIDS
92 $ cat hg.pid > $DAEMON_PIDS
93 $ cd ..
93 $ cd ..
94
94
95 Check local clone
95 Check local clone
96 ==================
96 ==================
97
97
98 The logic is close enough of uncompressed.
98 The logic is close enough of uncompressed.
99 This is present here to reuse the testing around file with "special" names.
99 This is present here to reuse the testing around file with "special" names.
100
100
101 $ hg clone server local-clone
101 $ hg clone server local-clone
102 updating to branch default
102 updating to branch default
103 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
103 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
104
104
105 Check that the clone went well
105 Check that the clone went well
106
106
107 $ hg verify -R local-clone -q
107 $ hg verify -R local-clone -q
108
108
109 Check uncompressed
109 Check uncompressed
110 ==================
110 ==================
111
111
112 Cannot stream clone when server.uncompressed is set to false
112 Cannot stream clone when server.uncompressed is set to false
113 ------------------------------------------------------------
113 ------------------------------------------------------------
114
114
115 When `server.uncompressed` is disabled, the client should fallback to a bundle
115 When `server.uncompressed` is disabled, the client should fallback to a bundle
116 based clone with a warning.
116 based clone with a warning.
117
117
118
118
119 $ get-with-headers.py $LOCALIP:$HGPORT '?cmd=stream_out'
119 $ get-with-headers.py $LOCALIP:$HGPORT '?cmd=stream_out'
120 200 Script output follows
120 200 Script output follows
121
121
122 1
122 1
123
123
124 $ hg debugcapabilities http://localhost:$HGPORT
124 $ hg debugcapabilities http://localhost:$HGPORT
125 Main capabilities:
125 Main capabilities:
126 batch
126 batch
127 branchmap
127 branchmap
128 $USUAL_BUNDLE2_CAPS_SERVER$
128 $USUAL_BUNDLE2_CAPS_SERVER$
129 changegroupsubset
129 changegroupsubset
130 compression=$BUNDLE2_COMPRESSIONS$
130 compression=$BUNDLE2_COMPRESSIONS$
131 getbundle
131 getbundle
132 httpheader=1024
132 httpheader=1024
133 httpmediatype=0.1rx,0.1tx,0.2tx
133 httpmediatype=0.1rx,0.1tx,0.2tx
134 known
134 known
135 lookup
135 lookup
136 pushkey
136 pushkey
137 unbundle=HG10GZ,HG10BZ,HG10UN
137 unbundle=HG10GZ,HG10BZ,HG10UN
138 unbundlehash
138 unbundlehash
139 Bundle2 capabilities:
139 Bundle2 capabilities:
140 HG20
140 HG20
141 bookmarks
141 bookmarks
142 changegroup
142 changegroup
143 01
143 01
144 02
144 02
145 03
145 03
146 checkheads
146 checkheads
147 related
147 related
148 digests
148 digests
149 md5
149 md5
150 sha1
150 sha1
151 sha512
151 sha512
152 error
152 error
153 abort
153 abort
154 unsupportedcontent
154 unsupportedcontent
155 pushraced
155 pushraced
156 pushkey
156 pushkey
157 hgtagsfnodes
157 hgtagsfnodes
158 listkeys
158 listkeys
159 phases
159 phases
160 heads
160 heads
161 pushkey
161 pushkey
162 remote-changegroup
162 remote-changegroup
163 http
163 http
164 https
164 https
165
165
166 $ hg clone --stream -U http://localhost:$HGPORT server-disabled
166 $ hg clone --stream -U http://localhost:$HGPORT server-disabled
167 warning: stream clone requested but server has them disabled
167 warning: stream clone requested but server has them disabled
168 requesting all changes
168 requesting all changes
169 adding changesets
169 adding changesets
170 adding manifests
170 adding manifests
171 adding file changes
171 adding file changes
172 added 3 changesets with 1088 changes to 1088 files
172 added 3 changesets with 1088 changes to 1088 files
173 new changesets 96ee1d7354c4:5223b5e3265f
173 new changesets 96ee1d7354c4:5223b5e3265f
174
174
175 $ killdaemons.py
175 $ killdaemons.py
176 $ cd server
176 $ cd server
177 $ hg serve -p $HGPORT -d --pid-file=hg.pid --error errors.txt
177 $ hg serve -p $HGPORT -d --pid-file=hg.pid --error errors.txt
178 $ cat hg.pid > $DAEMON_PIDS
178 $ cat hg.pid > $DAEMON_PIDS
179 $ cd ..
179 $ cd ..
180
180
181 Basic clone
181 Basic clone
182 -----------
183
184 Check that --stream trigger a stream clone and result in a valid repositoty
185
186 We check the associated output for exact bytes on file number as changes in
187 these value implies changes in the data transfered and can detect unintended
188 changes in the process.
182
189
183 #if stream-legacy
190 #if stream-legacy
184 $ hg clone --stream -U http://localhost:$HGPORT clone1
191 $ hg clone --stream -U http://localhost:$HGPORT clone1
185 streaming all changes
192 streaming all changes
186 1091 files to transfer, 102 KB of data (no-zstd !)
193 1091 files to transfer, 102 KB of data (no-zstd !)
187 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
194 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
188 1091 files to transfer, 98.8 KB of data (zstd !)
195 1091 files to transfer, 98.8 KB of data (zstd !)
189 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
196 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
190 searching for changes
197 searching for changes
191 no changes found
198 no changes found
192 $ cat server/errors.txt
193 #endif
199 #endif
194 #if stream-bundle2-v2
200 #if stream-bundle2-v2
195 $ hg clone --stream -U http://localhost:$HGPORT clone1
201 $ hg clone --stream -U http://localhost:$HGPORT clone1
196 streaming all changes
202 streaming all changes
197 1094 files to transfer, 102 KB of data (no-zstd !)
203 1094 files to transfer, 102 KB of data (no-zstd !)
198 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
204 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
199 1094 files to transfer, 98.9 KB of data (zstd no-rust !)
205 1094 files to transfer, 98.9 KB of data (zstd no-rust !)
200 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
206 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
201 1096 files to transfer, 99.0 KB of data (zstd rust !)
207 1096 files to transfer, 99.0 KB of data (zstd rust !)
202 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
208 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
209 #endif
203
210
211 #if stream-bundle2-v3
212 $ hg clone --stream -U http://localhost:$HGPORT clone1
213 streaming all changes
214 1093 entries to transfer
215 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
216 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
217 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
218 #endif
219
220 #if no-stream-legacy
204 $ ls -1 clone1/.hg/cache
221 $ ls -1 clone1/.hg/cache
205 branch2-base
222 branch2-base
206 branch2-immutable
223 branch2-immutable
207 branch2-served
224 branch2-served
208 branch2-served.hidden
225 branch2-served.hidden
209 branch2-visible
226 branch2-visible
210 branch2-visible-hidden
227 branch2-visible-hidden
211 rbc-names-v1
228 rbc-names-v1
212 rbc-revs-v1
229 rbc-revs-v1
213 tags2
230 tags2
214 tags2-served
231 tags2-served
215 $ cat server/errors.txt
216 #endif
232 #endif
217 #if stream-bundle2-v3
218 $ hg clone --stream -U http://localhost:$HGPORT clone1
219 streaming all changes
220 1093 entries to transfer
221 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
222 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
223 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
224
233
225 $ ls -1 clone1/.hg/cache
234 $ hg -R clone1 verify --quiet
226 branch2-base
227 branch2-immutable
228 branch2-served
229 branch2-served.hidden
230 branch2-visible
231 branch2-visible-hidden
232 rbc-names-v1
233 rbc-revs-v1
234 tags2
235 tags2-served
236 $ cat server/errors.txt
235 $ cat server/errors.txt
237 #endif
238
236
239 getbundle requests with stream=1 are uncompressed
237 getbundle requests with stream=1 are uncompressed
240
238
241 $ 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%252C03%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Astream%253Dv2&cg=0&common=0000000000000000000000000000000000000000&heads=c17445101a72edac06facd130d14808dfbd5c7c2&stream=1"
239 $ 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%252C03%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Astream%253Dv2&cg=0&common=0000000000000000000000000000000000000000&heads=c17445101a72edac06facd130d14808dfbd5c7c2&stream=1"
242 200 Script output follows
240 200 Script output follows
243 content-type: application/mercurial-0.2
241 content-type: application/mercurial-0.2
244
242
245
243
246 #if no-zstd no-rust
244 #if no-zstd no-rust
247 $ f --size --hex --bytes 256 body
245 $ f --size --hex --bytes 256 body
248 body: size=119140
246 body: size=119140
249 0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......|
247 0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......|
250 0010: 62 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |b.STREAM2.......|
248 0010: 62 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |b.STREAM2.......|
251 0020: 06 09 04 0c 26 62 79 74 65 63 6f 75 6e 74 31 30 |....&bytecount10|
249 0020: 06 09 04 0c 26 62 79 74 65 63 6f 75 6e 74 31 30 |....&bytecount10|
252 0030: 34 31 31 35 66 69 6c 65 63 6f 75 6e 74 31 30 39 |4115filecount109|
250 0030: 34 31 31 35 66 69 6c 65 63 6f 75 6e 74 31 30 39 |4115filecount109|
253 0040: 34 72 65 71 75 69 72 65 6d 65 6e 74 73 67 65 6e |4requirementsgen|
251 0040: 34 72 65 71 75 69 72 65 6d 65 6e 74 73 67 65 6e |4requirementsgen|
254 0050: 65 72 61 6c 64 65 6c 74 61 25 32 43 72 65 76 6c |eraldelta%2Crevl|
252 0050: 65 72 61 6c 64 65 6c 74 61 25 32 43 72 65 76 6c |eraldelta%2Crevl|
255 0060: 6f 67 76 31 25 32 43 73 70 61 72 73 65 72 65 76 |ogv1%2Csparserev|
253 0060: 6f 67 76 31 25 32 43 73 70 61 72 73 65 72 65 76 |ogv1%2Csparserev|
256 0070: 6c 6f 67 00 00 80 00 73 08 42 64 61 74 61 2f 30 |log....s.Bdata/0|
254 0070: 6c 6f 67 00 00 80 00 73 08 42 64 61 74 61 2f 30 |log....s.Bdata/0|
257 0080: 2e 69 00 03 00 01 00 00 00 00 00 00 00 02 00 00 |.i..............|
255 0080: 2e 69 00 03 00 01 00 00 00 00 00 00 00 02 00 00 |.i..............|
258 0090: 00 01 00 00 00 00 00 00 00 01 ff ff ff ff ff ff |................|
256 0090: 00 01 00 00 00 00 00 00 00 01 ff ff ff ff ff ff |................|
259 00a0: ff ff 80 29 63 a0 49 d3 23 87 bf ce fe 56 67 92 |...)c.I.#....Vg.|
257 00a0: ff ff 80 29 63 a0 49 d3 23 87 bf ce fe 56 67 92 |...)c.I.#....Vg.|
260 00b0: 67 2c 69 d1 ec 39 00 00 00 00 00 00 00 00 00 00 |g,i..9..........|
258 00b0: 67 2c 69 d1 ec 39 00 00 00 00 00 00 00 00 00 00 |g,i..9..........|
261 00c0: 00 00 75 30 73 26 45 64 61 74 61 2f 30 30 63 68 |..u0s&Edata/00ch|
259 00c0: 00 00 75 30 73 26 45 64 61 74 61 2f 30 30 63 68 |..u0s&Edata/00ch|
262 00d0: 61 6e 67 65 6c 6f 67 2d 61 62 33 34 39 31 38 30 |angelog-ab349180|
260 00d0: 61 6e 67 65 6c 6f 67 2d 61 62 33 34 39 31 38 30 |angelog-ab349180|
263 00e0: 61 30 34 30 35 30 31 30 2e 6e 64 2e 69 00 03 00 |a0405010.nd.i...|
261 00e0: 61 30 34 30 35 30 31 30 2e 6e 64 2e 69 00 03 00 |a0405010.nd.i...|
264 00f0: 01 00 00 00 00 00 00 00 05 00 00 00 04 00 00 00 |................|
262 00f0: 01 00 00 00 00 00 00 00 05 00 00 00 04 00 00 00 |................|
265 #endif
263 #endif
266 #if zstd no-rust
264 #if zstd no-rust
267 $ f --size --hex --bytes 256 body
265 $ f --size --hex --bytes 256 body
268 body: size=116327 (no-bigendian !)
266 body: size=116327 (no-bigendian !)
269 body: size=116322 (bigendian !)
267 body: size=116322 (bigendian !)
270 0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......|
268 0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......|
271 0010: 7c 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 ||.STREAM2.......|
269 0010: 7c 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 ||.STREAM2.......|
272 0020: 06 09 04 0c 40 62 79 74 65 63 6f 75 6e 74 31 30 |....@bytecount10|
270 0020: 06 09 04 0c 40 62 79 74 65 63 6f 75 6e 74 31 30 |....@bytecount10|
273 0030: 31 32 37 36 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1276filecount109| (no-bigendian !)
271 0030: 31 32 37 36 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1276filecount109| (no-bigendian !)
274 0030: 31 32 37 31 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1271filecount109| (bigendian !)
272 0030: 31 32 37 31 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1271filecount109| (bigendian !)
275 0040: 34 72 65 71 75 69 72 65 6d 65 6e 74 73 67 65 6e |4requirementsgen|
273 0040: 34 72 65 71 75 69 72 65 6d 65 6e 74 73 67 65 6e |4requirementsgen|
276 0050: 65 72 61 6c 64 65 6c 74 61 25 32 43 72 65 76 6c |eraldelta%2Crevl|
274 0050: 65 72 61 6c 64 65 6c 74 61 25 32 43 72 65 76 6c |eraldelta%2Crevl|
277 0060: 6f 67 2d 63 6f 6d 70 72 65 73 73 69 6f 6e 2d 7a |og-compression-z|
275 0060: 6f 67 2d 63 6f 6d 70 72 65 73 73 69 6f 6e 2d 7a |og-compression-z|
278 0070: 73 74 64 25 32 43 72 65 76 6c 6f 67 76 31 25 32 |std%2Crevlogv1%2|
276 0070: 73 74 64 25 32 43 72 65 76 6c 6f 67 76 31 25 32 |std%2Crevlogv1%2|
279 0080: 43 73 70 61 72 73 65 72 65 76 6c 6f 67 00 00 80 |Csparserevlog...|
277 0080: 43 73 70 61 72 73 65 72 65 76 6c 6f 67 00 00 80 |Csparserevlog...|
280 0090: 00 73 08 42 64 61 74 61 2f 30 2e 69 00 03 00 01 |.s.Bdata/0.i....|
278 0090: 00 73 08 42 64 61 74 61 2f 30 2e 69 00 03 00 01 |.s.Bdata/0.i....|
281 00a0: 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 |................|
279 00a0: 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 |................|
282 00b0: 00 00 00 01 ff ff ff ff ff ff ff ff 80 29 63 a0 |.............)c.|
280 00b0: 00 00 00 01 ff ff ff ff ff ff ff ff 80 29 63 a0 |.............)c.|
283 00c0: 49 d3 23 87 bf ce fe 56 67 92 67 2c 69 d1 ec 39 |I.#....Vg.g,i..9|
281 00c0: 49 d3 23 87 bf ce fe 56 67 92 67 2c 69 d1 ec 39 |I.#....Vg.g,i..9|
284 00d0: 00 00 00 00 00 00 00 00 00 00 00 00 75 30 73 26 |............u0s&|
282 00d0: 00 00 00 00 00 00 00 00 00 00 00 00 75 30 73 26 |............u0s&|
285 00e0: 45 64 61 74 61 2f 30 30 63 68 61 6e 67 65 6c 6f |Edata/00changelo|
283 00e0: 45 64 61 74 61 2f 30 30 63 68 61 6e 67 65 6c 6f |Edata/00changelo|
286 00f0: 67 2d 61 62 33 34 39 31 38 30 61 30 34 30 35 30 |g-ab349180a04050|
284 00f0: 67 2d 61 62 33 34 39 31 38 30 61 30 34 30 35 30 |g-ab349180a04050|
287 #endif
285 #endif
288 #if zstd rust no-dirstate-v2
286 #if zstd rust no-dirstate-v2
289 $ f --size --hex --bytes 256 body
287 $ f --size --hex --bytes 256 body
290 body: size=116310 (no-rust !)
288 body: size=116310 (no-rust !)
291 body: size=116495 (rust no-stream-legacy no-bigendian !)
289 body: size=116495 (rust no-stream-legacy no-bigendian !)
292 body: size=116490 (rust no-stream-legacy bigendian !)
290 body: size=116490 (rust no-stream-legacy bigendian !)
293 body: size=116327 (rust stream-legacy no-bigendian !)
291 body: size=116327 (rust stream-legacy no-bigendian !)
294 body: size=116322 (rust stream-legacy bigendian !)
292 body: size=116322 (rust stream-legacy bigendian !)
295 0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......|
293 0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......|
296 0010: 7c 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 ||.STREAM2.......|
294 0010: 7c 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 ||.STREAM2.......|
297 0020: 06 09 04 0c 40 62 79 74 65 63 6f 75 6e 74 31 30 |....@bytecount10|
295 0020: 06 09 04 0c 40 62 79 74 65 63 6f 75 6e 74 31 30 |....@bytecount10|
298 0030: 31 32 37 36 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1276filecount109| (no-rust !)
296 0030: 31 32 37 36 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1276filecount109| (no-rust !)
299 0040: 33 72 65 71 75 69 72 65 6d 65 6e 74 73 67 65 6e |3requirementsgen| (no-rust !)
297 0040: 33 72 65 71 75 69 72 65 6d 65 6e 74 73 67 65 6e |3requirementsgen| (no-rust !)
300 0030: 31 34 30 32 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1402filecount109| (rust no-stream-legacy no-bigendian !)
298 0030: 31 34 30 32 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1402filecount109| (rust no-stream-legacy no-bigendian !)
301 0030: 31 33 39 37 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1397filecount109| (rust no-stream-legacy bigendian !)
299 0030: 31 33 39 37 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1397filecount109| (rust no-stream-legacy bigendian !)
302 0040: 36 72 65 71 75 69 72 65 6d 65 6e 74 73 67 65 6e |6requirementsgen| (rust no-stream-legacy !)
300 0040: 36 72 65 71 75 69 72 65 6d 65 6e 74 73 67 65 6e |6requirementsgen| (rust no-stream-legacy !)
303 0030: 31 32 37 36 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1276filecount109| (rust stream-legacy no-bigendian !)
301 0030: 31 32 37 36 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1276filecount109| (rust stream-legacy no-bigendian !)
304 0030: 31 32 37 31 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1271filecount109| (rust stream-legacy bigendian !)
302 0030: 31 32 37 31 66 69 6c 65 63 6f 75 6e 74 31 30 39 |1271filecount109| (rust stream-legacy bigendian !)
305 0040: 34 72 65 71 75 69 72 65 6d 65 6e 74 73 67 65 6e |4requirementsgen| (rust stream-legacy !)
303 0040: 34 72 65 71 75 69 72 65 6d 65 6e 74 73 67 65 6e |4requirementsgen| (rust stream-legacy !)
306 0050: 65 72 61 6c 64 65 6c 74 61 25 32 43 72 65 76 6c |eraldelta%2Crevl|
304 0050: 65 72 61 6c 64 65 6c 74 61 25 32 43 72 65 76 6c |eraldelta%2Crevl|
307 0060: 6f 67 2d 63 6f 6d 70 72 65 73 73 69 6f 6e 2d 7a |og-compression-z|
305 0060: 6f 67 2d 63 6f 6d 70 72 65 73 73 69 6f 6e 2d 7a |og-compression-z|
308 0070: 73 74 64 25 32 43 72 65 76 6c 6f 67 76 31 25 32 |std%2Crevlogv1%2|
306 0070: 73 74 64 25 32 43 72 65 76 6c 6f 67 76 31 25 32 |std%2Crevlogv1%2|
309 0080: 43 73 70 61 72 73 65 72 65 76 6c 6f 67 00 00 80 |Csparserevlog...|
307 0080: 43 73 70 61 72 73 65 72 65 76 6c 6f 67 00 00 80 |Csparserevlog...|
310 0090: 00 73 08 42 64 61 74 61 2f 30 2e 69 00 03 00 01 |.s.Bdata/0.i....|
308 0090: 00 73 08 42 64 61 74 61 2f 30 2e 69 00 03 00 01 |.s.Bdata/0.i....|
311 00a0: 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 |................|
309 00a0: 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 |................|
312 00b0: 00 00 00 01 ff ff ff ff ff ff ff ff 80 29 63 a0 |.............)c.|
310 00b0: 00 00 00 01 ff ff ff ff ff ff ff ff 80 29 63 a0 |.............)c.|
313 00c0: 49 d3 23 87 bf ce fe 56 67 92 67 2c 69 d1 ec 39 |I.#....Vg.g,i..9|
311 00c0: 49 d3 23 87 bf ce fe 56 67 92 67 2c 69 d1 ec 39 |I.#....Vg.g,i..9|
314 00d0: 00 00 00 00 00 00 00 00 00 00 00 00 75 30 73 26 |............u0s&|
312 00d0: 00 00 00 00 00 00 00 00 00 00 00 00 75 30 73 26 |............u0s&|
315 00e0: 45 64 61 74 61 2f 30 30 63 68 61 6e 67 65 6c 6f |Edata/00changelo|
313 00e0: 45 64 61 74 61 2f 30 30 63 68 61 6e 67 65 6c 6f |Edata/00changelo|
316 00f0: 67 2d 61 62 33 34 39 31 38 30 61 30 34 30 35 30 |g-ab349180a04050|
314 00f0: 67 2d 61 62 33 34 39 31 38 30 61 30 34 30 35 30 |g-ab349180a04050|
317 #endif
315 #endif
318 #if zstd dirstate-v2
316 #if zstd dirstate-v2
319 $ f --size --hex --bytes 256 body
317 $ f --size --hex --bytes 256 body
320 body: size=109549
318 body: size=109549
321 0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......|
319 0000: 04 6e 6f 6e 65 48 47 32 30 00 00 00 00 00 00 00 |.noneHG20.......|
322 0010: c0 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |..STREAM2.......|
320 0010: c0 07 53 54 52 45 41 4d 32 00 00 00 00 03 00 09 |..STREAM2.......|
323 0020: 05 09 04 0c 85 62 79 74 65 63 6f 75 6e 74 39 35 |.....bytecount95|
321 0020: 05 09 04 0c 85 62 79 74 65 63 6f 75 6e 74 39 35 |.....bytecount95|
324 0030: 38 39 37 66 69 6c 65 63 6f 75 6e 74 31 30 33 30 |897filecount1030|
322 0030: 38 39 37 66 69 6c 65 63 6f 75 6e 74 31 30 33 30 |897filecount1030|
325 0040: 72 65 71 75 69 72 65 6d 65 6e 74 73 64 6f 74 65 |requirementsdote|
323 0040: 72 65 71 75 69 72 65 6d 65 6e 74 73 64 6f 74 65 |requirementsdote|
326 0050: 6e 63 6f 64 65 25 32 43 65 78 70 2d 64 69 72 73 |ncode%2Cexp-dirs|
324 0050: 6e 63 6f 64 65 25 32 43 65 78 70 2d 64 69 72 73 |ncode%2Cexp-dirs|
327 0060: 74 61 74 65 2d 76 32 25 32 43 66 6e 63 61 63 68 |tate-v2%2Cfncach|
325 0060: 74 61 74 65 2d 76 32 25 32 43 66 6e 63 61 63 68 |tate-v2%2Cfncach|
328 0070: 65 25 32 43 67 65 6e 65 72 61 6c 64 65 6c 74 61 |e%2Cgeneraldelta|
326 0070: 65 25 32 43 67 65 6e 65 72 61 6c 64 65 6c 74 61 |e%2Cgeneraldelta|
329 0080: 25 32 43 70 65 72 73 69 73 74 65 6e 74 2d 6e 6f |%2Cpersistent-no|
327 0080: 25 32 43 70 65 72 73 69 73 74 65 6e 74 2d 6e 6f |%2Cpersistent-no|
330 0090: 64 65 6d 61 70 25 32 43 72 65 76 6c 6f 67 2d 63 |demap%2Crevlog-c|
328 0090: 64 65 6d 61 70 25 32 43 72 65 76 6c 6f 67 2d 63 |demap%2Crevlog-c|
331 00a0: 6f 6d 70 72 65 73 73 69 6f 6e 2d 7a 73 74 64 25 |ompression-zstd%|
329 00a0: 6f 6d 70 72 65 73 73 69 6f 6e 2d 7a 73 74 64 25 |ompression-zstd%|
332 00b0: 32 43 72 65 76 6c 6f 67 76 31 25 32 43 73 70 61 |2Crevlogv1%2Cspa|
330 00b0: 32 43 72 65 76 6c 6f 67 76 31 25 32 43 73 70 61 |2Crevlogv1%2Cspa|
333 00c0: 72 73 65 72 65 76 6c 6f 67 25 32 43 73 74 6f 72 |rserevlog%2Cstor|
331 00c0: 72 73 65 72 65 76 6c 6f 67 25 32 43 73 74 6f 72 |rserevlog%2Cstor|
334 00d0: 65 00 00 80 00 73 08 42 64 61 74 61 2f 30 2e 69 |e....s.Bdata/0.i|
332 00d0: 65 00 00 80 00 73 08 42 64 61 74 61 2f 30 2e 69 |e....s.Bdata/0.i|
335 00e0: 00 03 00 01 00 00 00 00 00 00 00 02 00 00 00 01 |................|
333 00e0: 00 03 00 01 00 00 00 00 00 00 00 02 00 00 00 01 |................|
336 00f0: 00 00 00 00 00 00 00 01 ff ff ff ff ff ff ff ff |................|
334 00f0: 00 00 00 00 00 00 00 01 ff ff ff ff ff ff ff ff |................|
337 #endif
335 #endif
338
336
339 --uncompressed is an alias to --stream
337 --uncompressed is an alias to --stream
340
338
341 #if stream-legacy
339 #if stream-legacy
342 $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed
340 $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed
343 streaming all changes
341 streaming all changes
344 1091 files to transfer, 102 KB of data (no-zstd !)
342 1091 files to transfer, 102 KB of data (no-zstd !)
345 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
343 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
346 1091 files to transfer, 98.8 KB of data (zstd !)
344 1091 files to transfer, 98.8 KB of data (zstd !)
347 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
345 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
348 searching for changes
346 searching for changes
349 no changes found
347 no changes found
350 #endif
348 #endif
351 #if stream-bundle2-v2
349 #if stream-bundle2-v2
352 $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed
350 $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed
353 streaming all changes
351 streaming all changes
354 1094 files to transfer, 102 KB of data (no-zstd !)
352 1094 files to transfer, 102 KB of data (no-zstd !)
355 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
353 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
356 1094 files to transfer, 98.9 KB of data (zstd no-rust !)
354 1094 files to transfer, 98.9 KB of data (zstd no-rust !)
357 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
355 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
358 1096 files to transfer, 99.0 KB of data (zstd rust !)
356 1096 files to transfer, 99.0 KB of data (zstd rust !)
359 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
357 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
360 #endif
358 #endif
361 #if stream-bundle2-v3
359 #if stream-bundle2-v3
362 $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed
360 $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed
363 streaming all changes
361 streaming all changes
364 1093 entries to transfer
362 1093 entries to transfer
365 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
363 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
366 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
364 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
367 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
365 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
368 #endif
366 #endif
369
367
370 Clone with background file closing enabled
368 Clone with background file closing enabled
371
369
372 #if stream-legacy
370 #if stream-legacy
373 $ hg --debug --config worker.backgroundclose=true --config worker.backgroundcloseminfilecount=1 clone --stream -U http://localhost:$HGPORT clone-background | grep -v adding
371 $ hg --debug --config worker.backgroundclose=true --config worker.backgroundcloseminfilecount=1 clone --stream -U http://localhost:$HGPORT clone-background | grep -v adding
374 using http://localhost:$HGPORT/
372 using http://localhost:$HGPORT/
375 sending capabilities command
373 sending capabilities command
376 sending branchmap command
374 sending branchmap command
377 streaming all changes
375 streaming all changes
378 sending stream_out command
376 sending stream_out command
379 1091 files to transfer, 102 KB of data (no-zstd !)
377 1091 files to transfer, 102 KB of data (no-zstd !)
380 1091 files to transfer, 98.8 KB of data (zstd !)
378 1091 files to transfer, 98.8 KB of data (zstd !)
381 starting 4 threads for background file closing
379 starting 4 threads for background file closing
382 updating the branch cache
380 updating the branch cache
383 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
381 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
384 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
382 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
385 query 1; heads
383 query 1; heads
386 sending batch command
384 sending batch command
387 searching for changes
385 searching for changes
388 all remote heads known locally
386 all remote heads known locally
389 no changes found
387 no changes found
390 sending getbundle command
388 sending getbundle command
391 bundle2-input-bundle: with-transaction
389 bundle2-input-bundle: with-transaction
392 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
390 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
393 bundle2-input-part: "phase-heads" supported
391 bundle2-input-part: "phase-heads" supported
394 bundle2-input-part: total payload size 24
392 bundle2-input-part: total payload size 24
395 bundle2-input-bundle: 2 parts total
393 bundle2-input-bundle: 2 parts total
396 checking for updated bookmarks
394 checking for updated bookmarks
397 updating the branch cache
395 updating the branch cache
398 (sent 5 HTTP requests and * bytes; received * bytes in responses) (glob)
396 (sent 5 HTTP requests and * bytes; received * bytes in responses) (glob)
399 #endif
397 #endif
400 #if stream-bundle2-v2
398 #if stream-bundle2-v2
401 $ hg --debug --config worker.backgroundclose=true --config worker.backgroundcloseminfilecount=1 clone --stream -U http://localhost:$HGPORT clone-background | grep -v adding
399 $ hg --debug --config worker.backgroundclose=true --config worker.backgroundcloseminfilecount=1 clone --stream -U http://localhost:$HGPORT clone-background | grep -v adding
402 using http://localhost:$HGPORT/
400 using http://localhost:$HGPORT/
403 sending capabilities command
401 sending capabilities command
404 query 1; heads
402 query 1; heads
405 sending batch command
403 sending batch command
406 streaming all changes
404 streaming all changes
407 sending getbundle command
405 sending getbundle command
408 bundle2-input-bundle: with-transaction
406 bundle2-input-bundle: with-transaction
409 bundle2-input-part: "stream2" (params: 3 mandatory) supported
407 bundle2-input-part: "stream2" (params: 3 mandatory) supported
410 applying stream bundle
408 applying stream bundle
411 1094 files to transfer, 102 KB of data (no-zstd !)
409 1094 files to transfer, 102 KB of data (no-zstd !)
412 1094 files to transfer, 98.9 KB of data (zstd no-rust !)
410 1094 files to transfer, 98.9 KB of data (zstd no-rust !)
413 1096 files to transfer, 99.0 KB of data (zstd rust !)
411 1096 files to transfer, 99.0 KB of data (zstd rust !)
414 starting 4 threads for background file closing
412 starting 4 threads for background file closing
415 starting 4 threads for background file closing
413 starting 4 threads for background file closing
416 updating the branch cache
414 updating the branch cache
417 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
415 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
418 bundle2-input-part: total payload size 119001 (no-zstd !)
416 bundle2-input-part: total payload size 119001 (no-zstd !)
419 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
417 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
420 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
418 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
421 bundle2-input-part: total payload size 116162 (zstd no-bigendian no-rust !)
419 bundle2-input-part: total payload size 116162 (zstd no-bigendian no-rust !)
422 bundle2-input-part: total payload size 116330 (zstd no-bigendian rust !)
420 bundle2-input-part: total payload size 116330 (zstd no-bigendian rust !)
423 bundle2-input-part: total payload size 116157 (zstd bigendian no-rust !)
421 bundle2-input-part: total payload size 116157 (zstd bigendian no-rust !)
424 bundle2-input-part: total payload size 116325 (zstd bigendian rust !)
422 bundle2-input-part: total payload size 116325 (zstd bigendian rust !)
425 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
423 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
426 bundle2-input-bundle: 2 parts total
424 bundle2-input-bundle: 2 parts total
427 checking for updated bookmarks
425 checking for updated bookmarks
428 updating the branch cache
426 updating the branch cache
429 (sent 3 HTTP requests and * bytes; received * bytes in responses) (glob)
427 (sent 3 HTTP requests and * bytes; received * bytes in responses) (glob)
430 #endif
428 #endif
431 #if stream-bundle2-v3
429 #if stream-bundle2-v3
432 $ hg --debug --config worker.backgroundclose=true --config worker.backgroundcloseminfilecount=1 clone --stream -U http://localhost:$HGPORT clone-background | grep -v adding
430 $ hg --debug --config worker.backgroundclose=true --config worker.backgroundcloseminfilecount=1 clone --stream -U http://localhost:$HGPORT clone-background | grep -v adding
433 using http://localhost:$HGPORT/
431 using http://localhost:$HGPORT/
434 sending capabilities command
432 sending capabilities command
435 query 1; heads
433 query 1; heads
436 sending batch command
434 sending batch command
437 streaming all changes
435 streaming all changes
438 sending getbundle command
436 sending getbundle command
439 bundle2-input-bundle: with-transaction
437 bundle2-input-bundle: with-transaction
440 bundle2-input-part: "stream3-exp" (params: 1 mandatory) supported
438 bundle2-input-part: "stream3-exp" (params: 1 mandatory) supported
441 applying stream bundle
439 applying stream bundle
442 1093 entries to transfer
440 1093 entries to transfer
443 starting 4 threads for background file closing
441 starting 4 threads for background file closing
444 starting 4 threads for background file closing
442 starting 4 threads for background file closing
445 updating the branch cache
443 updating the branch cache
446 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
444 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
447 bundle2-input-part: total payload size 120096 (no-zstd !)
445 bundle2-input-part: total payload size 120096 (no-zstd !)
448 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
446 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
449 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
447 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
450 bundle2-input-part: total payload size 117257 (zstd no-rust no-bigendian !)
448 bundle2-input-part: total payload size 117257 (zstd no-rust no-bigendian !)
451 bundle2-input-part: total payload size 117425 (zstd rust no-bigendian !)
449 bundle2-input-part: total payload size 117425 (zstd rust no-bigendian !)
452 bundle2-input-part: total payload size 117252 (zstd bigendian no-rust !)
450 bundle2-input-part: total payload size 117252 (zstd bigendian no-rust !)
453 bundle2-input-part: total payload size 117420 (zstd bigendian rust !)
451 bundle2-input-part: total payload size 117420 (zstd bigendian rust !)
454 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
452 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
455 bundle2-input-bundle: 2 parts total
453 bundle2-input-bundle: 2 parts total
456 checking for updated bookmarks
454 checking for updated bookmarks
457 updating the branch cache
455 updating the branch cache
458 (sent 3 HTTP requests and * bytes; received * bytes in responses) (glob)
456 (sent 3 HTTP requests and * bytes; received * bytes in responses) (glob)
459 #endif
457 #endif
460
458
461 Cannot stream clone when there are secret changesets
459 Cannot stream clone when there are secret changesets
462
460
463 $ hg -R server phase --force --secret -r tip
461 $ hg -R server phase --force --secret -r tip
464 $ hg clone --stream -U http://localhost:$HGPORT secret-denied
462 $ hg clone --stream -U http://localhost:$HGPORT secret-denied
465 warning: stream clone requested but server has them disabled
463 warning: stream clone requested but server has them disabled
466 requesting all changes
464 requesting all changes
467 adding changesets
465 adding changesets
468 adding manifests
466 adding manifests
469 adding file changes
467 adding file changes
470 added 2 changesets with 1025 changes to 1025 files
468 added 2 changesets with 1025 changes to 1025 files
471 new changesets 96ee1d7354c4:c17445101a72
469 new changesets 96ee1d7354c4:c17445101a72
472
470
473 $ killdaemons.py
471 $ killdaemons.py
474
472
475 Streaming of secrets can be overridden by server config
473 Streaming of secrets can be overridden by server config
476
474
477 $ cd server
475 $ cd server
478 $ hg serve --config server.uncompressedallowsecret=true -p $HGPORT -d --pid-file=hg.pid
476 $ hg serve --config server.uncompressedallowsecret=true -p $HGPORT -d --pid-file=hg.pid
479 $ cat hg.pid > $DAEMON_PIDS
477 $ cat hg.pid > $DAEMON_PIDS
480 $ cd ..
478 $ cd ..
481
479
482 #if stream-legacy
480 #if stream-legacy
483 $ hg clone --stream -U http://localhost:$HGPORT secret-allowed
481 $ hg clone --stream -U http://localhost:$HGPORT secret-allowed
484 streaming all changes
482 streaming all changes
485 1091 files to transfer, 102 KB of data (no-zstd !)
483 1091 files to transfer, 102 KB of data (no-zstd !)
486 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
484 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
487 1091 files to transfer, 98.8 KB of data (zstd !)
485 1091 files to transfer, 98.8 KB of data (zstd !)
488 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
486 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
489 searching for changes
487 searching for changes
490 no changes found
488 no changes found
491 #endif
489 #endif
492 #if stream-bundle2-v2
490 #if stream-bundle2-v2
493 $ hg clone --stream -U http://localhost:$HGPORT secret-allowed
491 $ hg clone --stream -U http://localhost:$HGPORT secret-allowed
494 streaming all changes
492 streaming all changes
495 1094 files to transfer, 102 KB of data (no-zstd !)
493 1094 files to transfer, 102 KB of data (no-zstd !)
496 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
494 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
497 1094 files to transfer, 98.9 KB of data (zstd no-rust !)
495 1094 files to transfer, 98.9 KB of data (zstd no-rust !)
498 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
496 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
499 1096 files to transfer, 99.0 KB of data (zstd rust !)
497 1096 files to transfer, 99.0 KB of data (zstd rust !)
500 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
498 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
501 #endif
499 #endif
502 #if stream-bundle2-v3
500 #if stream-bundle2-v3
503 $ hg clone --stream -U http://localhost:$HGPORT secret-allowed
501 $ hg clone --stream -U http://localhost:$HGPORT secret-allowed
504 streaming all changes
502 streaming all changes
505 1093 entries to transfer
503 1093 entries to transfer
506 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
504 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
507 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
505 transferred 98.9 KB in * seconds (* */sec) (glob) (zstd no-rust !)
508 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
506 transferred 99.0 KB in * seconds (* */sec) (glob) (zstd rust !)
509 #endif
507 #endif
510
508
511 $ killdaemons.py
509 $ killdaemons.py
512
510
513 Verify interaction between preferuncompressed and secret presence
511 Verify interaction between preferuncompressed and secret presence
514
512
515 $ cd server
513 $ cd server
516 $ hg serve --config server.preferuncompressed=true -p $HGPORT -d --pid-file=hg.pid
514 $ hg serve --config server.preferuncompressed=true -p $HGPORT -d --pid-file=hg.pid
517 $ cat hg.pid > $DAEMON_PIDS
515 $ cat hg.pid > $DAEMON_PIDS
518 $ cd ..
516 $ cd ..
519
517
520 $ hg clone -U http://localhost:$HGPORT preferuncompressed-secret
518 $ hg clone -U http://localhost:$HGPORT preferuncompressed-secret
521 requesting all changes
519 requesting all changes
522 adding changesets
520 adding changesets
523 adding manifests
521 adding manifests
524 adding file changes
522 adding file changes
525 added 2 changesets with 1025 changes to 1025 files
523 added 2 changesets with 1025 changes to 1025 files
526 new changesets 96ee1d7354c4:c17445101a72
524 new changesets 96ee1d7354c4:c17445101a72
527
525
528 $ killdaemons.py
526 $ killdaemons.py
529
527
530 Clone not allowed when full bundles disabled and can't serve secrets
528 Clone not allowed when full bundles disabled and can't serve secrets
531
529
532 $ cd server
530 $ cd server
533 $ hg serve --config server.disablefullbundle=true -p $HGPORT -d --pid-file=hg.pid
531 $ hg serve --config server.disablefullbundle=true -p $HGPORT -d --pid-file=hg.pid
534 $ cat hg.pid > $DAEMON_PIDS
532 $ cat hg.pid > $DAEMON_PIDS
535 $ cd ..
533 $ cd ..
536
534
537 $ hg clone --stream http://localhost:$HGPORT secret-full-disabled
535 $ hg clone --stream http://localhost:$HGPORT secret-full-disabled
538 warning: stream clone requested but server has them disabled
536 warning: stream clone requested but server has them disabled
539 requesting all changes
537 requesting all changes
540 remote: abort: server has pull-based clones disabled
538 remote: abort: server has pull-based clones disabled
541 abort: pull failed on remote
539 abort: pull failed on remote
542 (remove --pull if specified or upgrade Mercurial)
540 (remove --pull if specified or upgrade Mercurial)
543 [100]
541 [100]
544
542
545 Local stream clone with secrets involved
543 Local stream clone with secrets involved
546 (This is just a test over behavior: if you have access to the repo's files,
544 (This is just a test over behavior: if you have access to the repo's files,
547 there is no security so it isn't important to prevent a clone here.)
545 there is no security so it isn't important to prevent a clone here.)
548
546
549 $ hg clone -U --stream server local-secret
547 $ hg clone -U --stream server local-secret
550 warning: stream clone requested but server has them disabled
548 warning: stream clone requested but server has them disabled
551 requesting all changes
549 requesting all changes
552 adding changesets
550 adding changesets
553 adding manifests
551 adding manifests
554 adding file changes
552 adding file changes
555 added 2 changesets with 1025 changes to 1025 files
553 added 2 changesets with 1025 changes to 1025 files
556 new changesets 96ee1d7354c4:c17445101a72
554 new changesets 96ee1d7354c4:c17445101a72
557
555
558 Stream clone while repo is changing:
556 Stream clone while repo is changing:
559
557
560 $ mkdir changing
558 $ mkdir changing
561 $ cd changing
559 $ cd changing
562
560
563 prepare repo with small and big file to cover both code paths in emitrevlogdata
561 prepare repo with small and big file to cover both code paths in emitrevlogdata
564
562
565 $ hg init repo
563 $ hg init repo
566 $ touch repo/f1
564 $ touch repo/f1
567 $ $TESTDIR/seq.py 50000 > repo/f2
565 $ $TESTDIR/seq.py 50000 > repo/f2
568 $ hg -R repo ci -Aqm "0"
566 $ hg -R repo ci -Aqm "0"
569 $ HG_TEST_STREAM_WALKED_FILE_1="$TESTTMP/sync_file_walked_1"
567 $ HG_TEST_STREAM_WALKED_FILE_1="$TESTTMP/sync_file_walked_1"
570 $ export HG_TEST_STREAM_WALKED_FILE_1
568 $ export HG_TEST_STREAM_WALKED_FILE_1
571 $ HG_TEST_STREAM_WALKED_FILE_2="$TESTTMP/sync_file_walked_2"
569 $ HG_TEST_STREAM_WALKED_FILE_2="$TESTTMP/sync_file_walked_2"
572 $ export HG_TEST_STREAM_WALKED_FILE_2
570 $ export HG_TEST_STREAM_WALKED_FILE_2
573 $ HG_TEST_STREAM_WALKED_FILE_3="$TESTTMP/sync_file_walked_3"
571 $ HG_TEST_STREAM_WALKED_FILE_3="$TESTTMP/sync_file_walked_3"
574 $ export HG_TEST_STREAM_WALKED_FILE_3
572 $ export HG_TEST_STREAM_WALKED_FILE_3
575 # $ cat << EOF >> $HGRCPATH
573 # $ cat << EOF >> $HGRCPATH
576 # > [hooks]
574 # > [hooks]
577 # > pre-clone=rm -f "$TESTTMP/sync_file_walked_*"
575 # > pre-clone=rm -f "$TESTTMP/sync_file_walked_*"
578 # > EOF
576 # > EOF
579 $ hg serve -R repo -p $HGPORT1 -d --error errors.log --pid-file=hg.pid --config extensions.stream_steps="$RUNTESTDIR/testlib/ext-stream-clone-steps.py"
577 $ hg serve -R repo -p $HGPORT1 -d --error errors.log --pid-file=hg.pid --config extensions.stream_steps="$RUNTESTDIR/testlib/ext-stream-clone-steps.py"
580 $ cat hg.pid >> $DAEMON_PIDS
578 $ cat hg.pid >> $DAEMON_PIDS
581
579
582 clone while modifying the repo between stating file with write lock and
580 clone while modifying the repo between stating file with write lock and
583 actually serving file content
581 actually serving file content
584
582
585 $ (hg clone -q --stream -U http://localhost:$HGPORT1 clone; touch "$HG_TEST_STREAM_WALKED_FILE_3") &
583 $ (hg clone -q --stream -U http://localhost:$HGPORT1 clone; touch "$HG_TEST_STREAM_WALKED_FILE_3") &
586 $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_1
584 $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_1
587 $ echo >> repo/f1
585 $ echo >> repo/f1
588 $ echo >> repo/f2
586 $ echo >> repo/f2
589 $ hg -R repo ci -m "1" --config ui.timeout.warn=-1
587 $ hg -R repo ci -m "1" --config ui.timeout.warn=-1
590 $ touch $HG_TEST_STREAM_WALKED_FILE_2
588 $ touch $HG_TEST_STREAM_WALKED_FILE_2
591 $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_3
589 $ $RUNTESTDIR/testlib/wait-on-file 10 $HG_TEST_STREAM_WALKED_FILE_3
592 $ hg -R clone id
590 $ hg -R clone id
593 000000000000
591 000000000000
594 $ cat errors.log
592 $ cat errors.log
595 $ cd ..
593 $ cd ..
596
594
597 Stream repository with bookmarks
595 Stream repository with bookmarks
598 --------------------------------
596 --------------------------------
599
597
600 (revert introduction of secret changeset)
598 (revert introduction of secret changeset)
601
599
602 $ hg -R server phase --draft 'secret()'
600 $ hg -R server phase --draft 'secret()'
603
601
604 add a bookmark
602 add a bookmark
605
603
606 $ hg -R server bookmark -r tip some-bookmark
604 $ hg -R server bookmark -r tip some-bookmark
607
605
608 clone it
606 clone it
609
607
610 #if stream-legacy
608 #if stream-legacy
611 $ hg clone --stream http://localhost:$HGPORT with-bookmarks
609 $ hg clone --stream http://localhost:$HGPORT with-bookmarks
612 streaming all changes
610 streaming all changes
613 1091 files to transfer, 102 KB of data (no-zstd !)
611 1091 files to transfer, 102 KB of data (no-zstd !)
614 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
612 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
615 1091 files to transfer, 98.8 KB of data (zstd !)
613 1091 files to transfer, 98.8 KB of data (zstd !)
616 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
614 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
617 searching for changes
615 searching for changes
618 no changes found
616 no changes found
619 updating to branch default
617 updating to branch default
620 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
618 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
621 #endif
619 #endif
622 #if stream-bundle2-v2
620 #if stream-bundle2-v2
623 $ hg clone --stream http://localhost:$HGPORT with-bookmarks
621 $ hg clone --stream http://localhost:$HGPORT with-bookmarks
624 streaming all changes
622 streaming all changes
625 1097 files to transfer, 102 KB of data (no-zstd !)
623 1097 files to transfer, 102 KB of data (no-zstd !)
626 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
624 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
627 1097 files to transfer, 99.1 KB of data (zstd no-rust !)
625 1097 files to transfer, 99.1 KB of data (zstd no-rust !)
628 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
626 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
629 1099 files to transfer, 99.2 KB of data (zstd rust !)
627 1099 files to transfer, 99.2 KB of data (zstd rust !)
630 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
628 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
631 updating to branch default
629 updating to branch default
632 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
630 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
633 #endif
631 #endif
634 #if stream-bundle2-v3
632 #if stream-bundle2-v3
635 $ hg clone --stream http://localhost:$HGPORT with-bookmarks
633 $ hg clone --stream http://localhost:$HGPORT with-bookmarks
636 streaming all changes
634 streaming all changes
637 1096 entries to transfer
635 1096 entries to transfer
638 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
636 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
639 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
637 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
640 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
638 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
641 updating to branch default
639 updating to branch default
642 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
640 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
643 #endif
641 #endif
644 $ hg verify -R with-bookmarks -q
642 $ hg verify -R with-bookmarks -q
645 $ hg -R with-bookmarks bookmarks
643 $ hg -R with-bookmarks bookmarks
646 some-bookmark 2:5223b5e3265f
644 some-bookmark 2:5223b5e3265f
647
645
648 Stream repository with phases
646 Stream repository with phases
649 -----------------------------
647 -----------------------------
650
648
651 Clone as publishing
649 Clone as publishing
652
650
653 $ hg -R server phase -r 'all()'
651 $ hg -R server phase -r 'all()'
654 0: draft
652 0: draft
655 1: draft
653 1: draft
656 2: draft
654 2: draft
657
655
658 #if stream-legacy
656 #if stream-legacy
659 $ hg clone --stream http://localhost:$HGPORT phase-publish
657 $ hg clone --stream http://localhost:$HGPORT phase-publish
660 streaming all changes
658 streaming all changes
661 1091 files to transfer, 102 KB of data (no-zstd !)
659 1091 files to transfer, 102 KB of data (no-zstd !)
662 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
660 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
663 1091 files to transfer, 98.8 KB of data (zstd !)
661 1091 files to transfer, 98.8 KB of data (zstd !)
664 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
662 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
665 searching for changes
663 searching for changes
666 no changes found
664 no changes found
667 updating to branch default
665 updating to branch default
668 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
666 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
669 #endif
667 #endif
670 #if stream-bundle2-v2
668 #if stream-bundle2-v2
671 $ hg clone --stream http://localhost:$HGPORT phase-publish
669 $ hg clone --stream http://localhost:$HGPORT phase-publish
672 streaming all changes
670 streaming all changes
673 1097 files to transfer, 102 KB of data (no-zstd !)
671 1097 files to transfer, 102 KB of data (no-zstd !)
674 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
672 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
675 1097 files to transfer, 99.1 KB of data (zstd no-rust !)
673 1097 files to transfer, 99.1 KB of data (zstd no-rust !)
676 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
674 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
677 1099 files to transfer, 99.2 KB of data (zstd rust !)
675 1099 files to transfer, 99.2 KB of data (zstd rust !)
678 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
676 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
679 updating to branch default
677 updating to branch default
680 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
678 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
681 #endif
679 #endif
682 #if stream-bundle2-v3
680 #if stream-bundle2-v3
683 $ hg clone --stream http://localhost:$HGPORT phase-publish
681 $ hg clone --stream http://localhost:$HGPORT phase-publish
684 streaming all changes
682 streaming all changes
685 1096 entries to transfer
683 1096 entries to transfer
686 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
684 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
687 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
685 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
688 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
686 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
689 updating to branch default
687 updating to branch default
690 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
688 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
691 #endif
689 #endif
692 $ hg verify -R phase-publish -q
690 $ hg verify -R phase-publish -q
693 $ hg -R phase-publish phase -r 'all()'
691 $ hg -R phase-publish phase -r 'all()'
694 0: public
692 0: public
695 1: public
693 1: public
696 2: public
694 2: public
697
695
698 Clone as non publishing
696 Clone as non publishing
699
697
700 $ cat << EOF >> server/.hg/hgrc
698 $ cat << EOF >> server/.hg/hgrc
701 > [phases]
699 > [phases]
702 > publish = False
700 > publish = False
703 > EOF
701 > EOF
704 $ killdaemons.py
702 $ killdaemons.py
705 $ hg -R server serve -p $HGPORT -d --pid-file=hg.pid
703 $ hg -R server serve -p $HGPORT -d --pid-file=hg.pid
706 $ cat hg.pid > $DAEMON_PIDS
704 $ cat hg.pid > $DAEMON_PIDS
707
705
708 #if stream-legacy
706 #if stream-legacy
709
707
710 With v1 of the stream protocol, changeset are always cloned as public. It make
708 With v1 of the stream protocol, changeset are always cloned as public. It make
711 stream v1 unsuitable for non-publishing repository.
709 stream v1 unsuitable for non-publishing repository.
712
710
713 $ hg clone --stream http://localhost:$HGPORT phase-no-publish
711 $ hg clone --stream http://localhost:$HGPORT phase-no-publish
714 streaming all changes
712 streaming all changes
715 1091 files to transfer, 102 KB of data (no-zstd !)
713 1091 files to transfer, 102 KB of data (no-zstd !)
716 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
714 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
717 1091 files to transfer, 98.8 KB of data (zstd !)
715 1091 files to transfer, 98.8 KB of data (zstd !)
718 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
716 transferred 98.8 KB in * seconds (* */sec) (glob) (zstd !)
719 searching for changes
717 searching for changes
720 no changes found
718 no changes found
721 updating to branch default
719 updating to branch default
722 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
720 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
723 $ hg -R phase-no-publish phase -r 'all()'
721 $ hg -R phase-no-publish phase -r 'all()'
724 0: public
722 0: public
725 1: public
723 1: public
726 2: public
724 2: public
727 #endif
725 #endif
728 #if stream-bundle2-v2
726 #if stream-bundle2-v2
729 $ hg clone --stream http://localhost:$HGPORT phase-no-publish
727 $ hg clone --stream http://localhost:$HGPORT phase-no-publish
730 streaming all changes
728 streaming all changes
731 1098 files to transfer, 102 KB of data (no-zstd !)
729 1098 files to transfer, 102 KB of data (no-zstd !)
732 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
730 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
733 1098 files to transfer, 99.1 KB of data (zstd no-rust !)
731 1098 files to transfer, 99.1 KB of data (zstd no-rust !)
734 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
732 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
735 1100 files to transfer, 99.2 KB of data (zstd rust !)
733 1100 files to transfer, 99.2 KB of data (zstd rust !)
736 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
734 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
737 updating to branch default
735 updating to branch default
738 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
736 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
739 $ hg -R phase-no-publish phase -r 'all()'
737 $ hg -R phase-no-publish phase -r 'all()'
740 0: draft
738 0: draft
741 1: draft
739 1: draft
742 2: draft
740 2: draft
743 #endif
741 #endif
744 #if stream-bundle2-v3
742 #if stream-bundle2-v3
745 $ hg clone --stream http://localhost:$HGPORT phase-no-publish
743 $ hg clone --stream http://localhost:$HGPORT phase-no-publish
746 streaming all changes
744 streaming all changes
747 1097 entries to transfer
745 1097 entries to transfer
748 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
746 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
749 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
747 transferred 99.1 KB in * seconds (* */sec) (glob) (zstd no-rust !)
750 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
748 transferred 99.2 KB in * seconds (* */sec) (glob) (zstd rust !)
751 updating to branch default
749 updating to branch default
752 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
750 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved
753 $ hg -R phase-no-publish phase -r 'all()'
751 $ hg -R phase-no-publish phase -r 'all()'
754 0: draft
752 0: draft
755 1: draft
753 1: draft
756 2: draft
754 2: draft
757 #endif
755 #endif
758 $ hg verify -R phase-no-publish -q
756 $ hg verify -R phase-no-publish -q
759
757
760 $ killdaemons.py
758 $ killdaemons.py
761
759
762 #if stream-legacy
760 #if stream-legacy
763
761
764 With v1 of the stream protocol, changeset are always cloned as public. There's
762 With v1 of the stream protocol, changeset are always cloned as public. There's
765 no obsolescence markers exchange in stream v1.
763 no obsolescence markers exchange in stream v1.
766
764
767 #endif
765 #endif
768 #if stream-bundle2-v2
766 #if stream-bundle2-v2
769
767
770 Stream repository with obsolescence
768 Stream repository with obsolescence
771 -----------------------------------
769 -----------------------------------
772
770
773 Clone non-publishing with obsolescence
771 Clone non-publishing with obsolescence
774
772
775 $ cat >> $HGRCPATH << EOF
773 $ cat >> $HGRCPATH << EOF
776 > [experimental]
774 > [experimental]
777 > evolution=all
775 > evolution=all
778 > EOF
776 > EOF
779
777
780 $ cd server
778 $ cd server
781 $ echo foo > foo
779 $ echo foo > foo
782 $ hg -q commit -m 'about to be pruned'
780 $ hg -q commit -m 'about to be pruned'
783 $ hg debugobsolete `hg log -r . -T '{node}'` -d '0 0' -u test --record-parents
781 $ hg debugobsolete `hg log -r . -T '{node}'` -d '0 0' -u test --record-parents
784 1 new obsolescence markers
782 1 new obsolescence markers
785 obsoleted 1 changesets
783 obsoleted 1 changesets
786 $ hg up null -q
784 $ hg up null -q
787 $ hg log -T '{rev}: {phase}\n'
785 $ hg log -T '{rev}: {phase}\n'
788 2: draft
786 2: draft
789 1: draft
787 1: draft
790 0: draft
788 0: draft
791 $ hg serve -p $HGPORT -d --pid-file=hg.pid
789 $ hg serve -p $HGPORT -d --pid-file=hg.pid
792 $ cat hg.pid > $DAEMON_PIDS
790 $ cat hg.pid > $DAEMON_PIDS
793 $ cd ..
791 $ cd ..
794
792
795 $ hg clone -U --stream http://localhost:$HGPORT with-obsolescence
793 $ hg clone -U --stream http://localhost:$HGPORT with-obsolescence
796 streaming all changes
794 streaming all changes
797 1099 files to transfer, 102 KB of data (no-zstd !)
795 1099 files to transfer, 102 KB of data (no-zstd !)
798 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
796 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
799 1099 files to transfer, 99.5 KB of data (zstd no-rust !)
797 1099 files to transfer, 99.5 KB of data (zstd no-rust !)
800 transferred 99.5 KB in * seconds (* */sec) (glob) (zstd no-rust !)
798 transferred 99.5 KB in * seconds (* */sec) (glob) (zstd no-rust !)
801 1101 files to transfer, 99.6 KB of data (zstd rust !)
799 1101 files to transfer, 99.6 KB of data (zstd rust !)
802 transferred 99.6 KB in * seconds (* */sec) (glob) (zstd rust !)
800 transferred 99.6 KB in * seconds (* */sec) (glob) (zstd rust !)
803 $ hg -R with-obsolescence log -T '{rev}: {phase}\n'
801 $ hg -R with-obsolescence log -T '{rev}: {phase}\n'
804 2: draft
802 2: draft
805 1: draft
803 1: draft
806 0: draft
804 0: draft
807 $ hg debugobsolete -R with-obsolescence
805 $ hg debugobsolete -R with-obsolescence
808 8c206a663911c1f97f2f9d7382e417ae55872cfa 0 {5223b5e3265f0df40bb743da62249413d74ac70f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
806 8c206a663911c1f97f2f9d7382e417ae55872cfa 0 {5223b5e3265f0df40bb743da62249413d74ac70f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
809 $ hg verify -R with-obsolescence -q
807 $ hg verify -R with-obsolescence -q
810
808
811 $ hg clone -U --stream --config experimental.evolution=0 http://localhost:$HGPORT with-obsolescence-no-evolution
809 $ hg clone -U --stream --config experimental.evolution=0 http://localhost:$HGPORT with-obsolescence-no-evolution
812 streaming all changes
810 streaming all changes
813 remote: abort: server has obsolescence markers, but client cannot receive them via stream clone
811 remote: abort: server has obsolescence markers, but client cannot receive them via stream clone
814 abort: pull failed on remote
812 abort: pull failed on remote
815 [100]
813 [100]
816
814
817 $ killdaemons.py
815 $ killdaemons.py
818
816
819 #endif
817 #endif
820 #if stream-bundle2-v3
818 #if stream-bundle2-v3
821
819
822 Stream repository with obsolescence
820 Stream repository with obsolescence
823 -----------------------------------
821 -----------------------------------
824
822
825 Clone non-publishing with obsolescence
823 Clone non-publishing with obsolescence
826
824
827 $ cat >> $HGRCPATH << EOF
825 $ cat >> $HGRCPATH << EOF
828 > [experimental]
826 > [experimental]
829 > evolution=all
827 > evolution=all
830 > EOF
828 > EOF
831
829
832 $ cd server
830 $ cd server
833 $ echo foo > foo
831 $ echo foo > foo
834 $ hg -q commit -m 'about to be pruned'
832 $ hg -q commit -m 'about to be pruned'
835 $ hg debugobsolete `hg log -r . -T '{node}'` -d '0 0' -u test --record-parents
833 $ hg debugobsolete `hg log -r . -T '{node}'` -d '0 0' -u test --record-parents
836 1 new obsolescence markers
834 1 new obsolescence markers
837 obsoleted 1 changesets
835 obsoleted 1 changesets
838 $ hg up null -q
836 $ hg up null -q
839 $ hg log -T '{rev}: {phase}\n'
837 $ hg log -T '{rev}: {phase}\n'
840 2: draft
838 2: draft
841 1: draft
839 1: draft
842 0: draft
840 0: draft
843 $ hg serve -p $HGPORT -d --pid-file=hg.pid
841 $ hg serve -p $HGPORT -d --pid-file=hg.pid
844 $ cat hg.pid > $DAEMON_PIDS
842 $ cat hg.pid > $DAEMON_PIDS
845 $ cd ..
843 $ cd ..
846
844
847 $ hg clone -U --stream http://localhost:$HGPORT with-obsolescence
845 $ hg clone -U --stream http://localhost:$HGPORT with-obsolescence
848 streaming all changes
846 streaming all changes
849 1098 entries to transfer
847 1098 entries to transfer
850 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
848 transferred 102 KB in * seconds (* */sec) (glob) (no-zstd !)
851 transferred 99.5 KB in * seconds (* */sec) (glob) (zstd no-rust !)
849 transferred 99.5 KB in * seconds (* */sec) (glob) (zstd no-rust !)
852 transferred 99.6 KB in * seconds (* */sec) (glob) (zstd rust !)
850 transferred 99.6 KB in * seconds (* */sec) (glob) (zstd rust !)
853 $ hg -R with-obsolescence log -T '{rev}: {phase}\n'
851 $ hg -R with-obsolescence log -T '{rev}: {phase}\n'
854 2: draft
852 2: draft
855 1: draft
853 1: draft
856 0: draft
854 0: draft
857 $ hg debugobsolete -R with-obsolescence
855 $ hg debugobsolete -R with-obsolescence
858 8c206a663911c1f97f2f9d7382e417ae55872cfa 0 {5223b5e3265f0df40bb743da62249413d74ac70f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
856 8c206a663911c1f97f2f9d7382e417ae55872cfa 0 {5223b5e3265f0df40bb743da62249413d74ac70f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
859 $ hg verify -R with-obsolescence -q
857 $ hg verify -R with-obsolescence -q
860
858
861 $ hg clone -U --stream --config experimental.evolution=0 http://localhost:$HGPORT with-obsolescence-no-evolution
859 $ hg clone -U --stream --config experimental.evolution=0 http://localhost:$HGPORT with-obsolescence-no-evolution
862 streaming all changes
860 streaming all changes
863 remote: abort: server has obsolescence markers, but client cannot receive them via stream clone
861 remote: abort: server has obsolescence markers, but client cannot receive them via stream clone
864 abort: pull failed on remote
862 abort: pull failed on remote
865 [100]
863 [100]
866
864
867 $ killdaemons.py
865 $ killdaemons.py
868
866
869 #endif
867 #endif
870
868
871 Cloning a repo with no requirements doesn't give some obscure error
869 Cloning a repo with no requirements doesn't give some obscure error
872
870
873 $ mkdir -p empty-repo/.hg
871 $ mkdir -p empty-repo/.hg
874 $ hg clone -q --stream ssh://user@dummy/empty-repo empty-repo2
872 $ hg clone -q --stream ssh://user@dummy/empty-repo empty-repo2
875 $ hg --cwd empty-repo2 verify -q
873 $ hg --cwd empty-repo2 verify -q
876
874
877 Cloning a repo with an empty manifestlog doesn't give some weird error
875 Cloning a repo with an empty manifestlog doesn't give some weird error
878
876
879 $ rm -r empty-repo; hg init empty-repo
877 $ rm -r empty-repo; hg init empty-repo
880 $ (cd empty-repo; touch x; hg commit -Am empty; hg debugstrip -r 0) > /dev/null
878 $ (cd empty-repo; touch x; hg commit -Am empty; hg debugstrip -r 0) > /dev/null
881 $ hg clone -q --stream ssh://user@dummy/empty-repo empty-repo3
879 $ hg clone -q --stream ssh://user@dummy/empty-repo empty-repo3
882 $ hg --cwd empty-repo3 verify -q 2>&1 | grep -v warning
880 $ hg --cwd empty-repo3 verify -q 2>&1 | grep -v warning
883 [1]
881 [1]
884
882
885 The warnings filtered out here are talking about zero-length 'orphan' data files.
883 The warnings filtered out here are talking about zero-length 'orphan' data files.
886 Those are harmless, so that's fine.
884 Those are harmless, so that's fine.
887
885
General Comments 0
You need to be logged in to leave comments. Login now