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