##// END OF EJS Templates
tests: re-add (glob) for $LOCALIP matches...
Augie Fackler -
r35153:c1b94f34 default
parent child Browse files
Show More
@@ -1,519 +1,519
1 1 Set up a server
2 2
3 3 $ cat >> $HGRCPATH << EOF
4 4 > [format]
5 5 > usegeneraldelta=yes
6 6 > EOF
7 7 $ hg init server
8 8 $ cd server
9 9 $ cat >> .hg/hgrc << EOF
10 10 > [extensions]
11 11 > clonebundles =
12 12 > EOF
13 13
14 14 $ touch foo
15 15 $ hg -q commit -A -m 'add foo'
16 16 $ touch bar
17 17 $ hg -q commit -A -m 'add bar'
18 18
19 19 $ hg serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log
20 20 $ cat hg.pid >> $DAEMON_PIDS
21 21 $ cd ..
22 22
23 23 Missing manifest should not result in server lookup
24 24
25 25 $ hg --verbose clone -U http://localhost:$HGPORT no-manifest
26 26 requesting all changes
27 27 adding changesets
28 28 adding manifests
29 29 adding file changes
30 30 added 2 changesets with 2 changes to 2 files
31 31 new changesets 53245c60e682:aaff8d2ffbbf
32 32
33 33 $ cat server/access.log
34 34 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
35 $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
36 $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=aaff8d2ffbbf07a46dd1f05d8ae7877e3f56e2a2&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
35 $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
36 $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=aaff8d2ffbbf07a46dd1f05d8ae7877e3f56e2a2&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
37 37
38 38 Empty manifest file results in retrieval
39 39 (the extension only checks if the manifest file exists)
40 40
41 41 $ touch server/.hg/clonebundles.manifest
42 42 $ hg --verbose clone -U http://localhost:$HGPORT empty-manifest
43 43 no clone bundles available on remote; falling back to regular clone
44 44 requesting all changes
45 45 adding changesets
46 46 adding manifests
47 47 adding file changes
48 48 added 2 changesets with 2 changes to 2 files
49 49 new changesets 53245c60e682:aaff8d2ffbbf
50 50
51 51 Manifest file with invalid URL aborts
52 52
53 53 $ echo 'http://does.not.exist/bundle.hg' > server/.hg/clonebundles.manifest
54 54 $ hg clone http://localhost:$HGPORT 404-url
55 55 applying clone bundle from http://does.not.exist/bundle.hg
56 56 error fetching bundle: (.* not known|No address associated with hostname) (re) (no-windows !)
57 57 error fetching bundle: [Errno 11004] getaddrinfo failed (windows !)
58 58 abort: error applying bundle
59 59 (if this error persists, consider contacting the server operator or disable clone bundles via "--config ui.clonebundles=false")
60 60 [255]
61 61
62 62 Server is not running aborts
63 63
64 64 $ echo "http://localhost:$HGPORT1/bundle.hg" > server/.hg/clonebundles.manifest
65 65 $ hg clone http://localhost:$HGPORT server-not-runner
66 66 applying clone bundle from http://localhost:$HGPORT1/bundle.hg
67 67 error fetching bundle: (.* refused.*|Protocol not supported|(.* )?Cannot assign requested address) (re)
68 68 abort: error applying bundle
69 69 (if this error persists, consider contacting the server operator or disable clone bundles via "--config ui.clonebundles=false")
70 70 [255]
71 71
72 72 Server returns 404
73 73
74 74 $ "$PYTHON" $TESTDIR/dumbhttp.py -p $HGPORT1 --pid http.pid
75 75 $ cat http.pid >> $DAEMON_PIDS
76 76 $ hg clone http://localhost:$HGPORT running-404
77 77 applying clone bundle from http://localhost:$HGPORT1/bundle.hg
78 78 HTTP error fetching bundle: HTTP Error 404: File not found
79 79 abort: error applying bundle
80 80 (if this error persists, consider contacting the server operator or disable clone bundles via "--config ui.clonebundles=false")
81 81 [255]
82 82
83 83 We can override failure to fall back to regular clone
84 84
85 85 $ hg --config ui.clonebundlefallback=true clone -U http://localhost:$HGPORT 404-fallback
86 86 applying clone bundle from http://localhost:$HGPORT1/bundle.hg
87 87 HTTP error fetching bundle: HTTP Error 404: File not found
88 88 falling back to normal clone
89 89 requesting all changes
90 90 adding changesets
91 91 adding manifests
92 92 adding file changes
93 93 added 2 changesets with 2 changes to 2 files
94 94 new changesets 53245c60e682:aaff8d2ffbbf
95 95
96 96 Bundle with partial content works
97 97
98 98 $ hg -R server bundle --type gzip-v1 --base null -r 53245c60e682 partial.hg
99 99 1 changesets found
100 100
101 101 We verify exact bundle content as an extra check against accidental future
102 102 changes. If this output changes, we could break old clients.
103 103
104 104 $ f --size --hexdump partial.hg
105 105 partial.hg: size=207
106 106 0000: 48 47 31 30 47 5a 78 9c 63 60 60 98 17 ac 12 93 |HG10GZx.c``.....|
107 107 0010: f0 ac a9 23 45 70 cb bf 0d 5f 59 4e 4a 7f 79 21 |...#Ep..._YNJ.y!|
108 108 0020: 9b cc 40 24 20 a0 d7 ce 2c d1 38 25 cd 24 25 d5 |..@$ ...,.8%.$%.|
109 109 0030: d8 c2 22 cd 38 d9 24 cd 22 d5 c8 22 cd 24 cd 32 |..".8.$."..".$.2|
110 110 0040: d1 c2 d0 c4 c8 d2 32 d1 38 39 29 c9 34 cd d4 80 |......2.89).4...|
111 111 0050: ab 24 b5 b8 84 cb 40 c1 80 2b 2d 3f 9f 8b 2b 31 |.$....@..+-?..+1|
112 112 0060: 25 45 01 c8 80 9a d2 9b 65 fb e5 9e 45 bf 8d 7f |%E......e...E...|
113 113 0070: 9f c6 97 9f 2b 44 34 67 d9 ec 8e 0f a0 92 0b 75 |....+D4g.......u|
114 114 0080: 41 d6 24 59 18 a4 a4 9a a6 18 1a 5b 98 9b 5a 98 |A.$Y.......[..Z.|
115 115 0090: 9a 18 26 9b a6 19 98 1a 99 99 26 a6 18 9a 98 24 |..&.......&....$|
116 116 00a0: 26 59 a6 25 5a 98 a5 18 a6 24 71 41 35 b1 43 dc |&Y.%Z....$qA5.C.|
117 117 00b0: 16 b2 83 f7 e9 45 8b d2 56 c7 a3 1f 82 52 d7 8a |.....E..V....R..|
118 118 00c0: 78 ed fc d5 76 f1 36 35 dc 05 00 36 ed 5e c7 |x...v.65...6.^.|
119 119
120 120 $ echo "http://localhost:$HGPORT1/partial.hg" > server/.hg/clonebundles.manifest
121 121 $ hg clone -U http://localhost:$HGPORT partial-bundle
122 122 applying clone bundle from http://localhost:$HGPORT1/partial.hg
123 123 adding changesets
124 124 adding manifests
125 125 adding file changes
126 126 added 1 changesets with 1 changes to 1 files
127 127 finished applying clone bundle
128 128 searching for changes
129 129 adding changesets
130 130 adding manifests
131 131 adding file changes
132 132 added 1 changesets with 1 changes to 1 files
133 133 new changesets aaff8d2ffbbf
134 134
135 135 Incremental pull doesn't fetch bundle
136 136
137 137 $ hg clone -r 53245c60e682 -U http://localhost:$HGPORT partial-clone
138 138 adding changesets
139 139 adding manifests
140 140 adding file changes
141 141 added 1 changesets with 1 changes to 1 files
142 142 new changesets 53245c60e682
143 143
144 144 $ cd partial-clone
145 145 $ hg pull
146 146 pulling from http://localhost:$HGPORT/
147 147 searching for changes
148 148 adding changesets
149 149 adding manifests
150 150 adding file changes
151 151 added 1 changesets with 1 changes to 1 files
152 152 new changesets aaff8d2ffbbf
153 153 (run 'hg update' to get a working copy)
154 154 $ cd ..
155 155
156 156 Bundle with full content works
157 157
158 158 $ hg -R server bundle --type gzip-v2 --base null -r tip full.hg
159 159 2 changesets found
160 160
161 161 Again, we perform an extra check against bundle content changes. If this content
162 162 changes, clone bundles produced by new Mercurial versions may not be readable
163 163 by old clients.
164 164
165 165 $ f --size --hexdump full.hg
166 166 full.hg: size=396
167 167 0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|
168 168 0010: 69 6f 6e 3d 47 5a 78 9c 63 60 60 d0 e4 76 f6 70 |ion=GZx.c``..v.p|
169 169 0020: f4 73 77 75 0f f2 0f 0d 60 00 02 46 46 76 26 4e |.swu....`..FFv&N|
170 170 0030: c6 b2 d4 a2 e2 cc fc 3c 03 a3 bc a4 e4 8c c4 bc |.......<........|
171 171 0040: f4 d4 62 23 06 06 e6 19 40 f9 4d c1 2a 31 09 cf |..b#....@.M.*1..|
172 172 0050: 9a 3a 52 04 b7 fc db f0 95 e5 a4 f4 97 17 b2 c9 |.:R.............|
173 173 0060: 0c 14 00 02 e6 d9 99 25 1a a7 a4 99 a4 a4 1a 5b |.......%.......[|
174 174 0070: 58 a4 19 27 9b a4 59 a4 1a 59 a4 99 a4 59 26 5a |X..'..Y..Y...Y&Z|
175 175 0080: 18 9a 18 59 5a 26 1a 27 27 25 99 a6 99 1a 70 95 |...YZ&.''%....p.|
176 176 0090: a4 16 97 70 19 28 18 70 a5 e5 e7 73 71 25 a6 a4 |...p.(.p...sq%..|
177 177 00a0: 28 00 19 20 17 af fa df ab ff 7b 3f fb 92 dc 8b |(.. ......{?....|
178 178 00b0: 1f 62 bb 9e b7 d7 d9 87 3d 5a 44 89 2f b0 99 87 |.b......=ZD./...|
179 179 00c0: ec e2 54 63 43 e3 b4 64 43 73 23 33 43 53 0b 63 |..TcC..dCs#3CS.c|
180 180 00d0: d3 14 23 03 a0 fb 2c 2c 0c d3 80 1e 30 49 49 b1 |..#...,,....0II.|
181 181 00e0: 4c 4a 32 48 33 30 b0 34 42 b8 38 29 b1 08 e2 62 |LJ2H30.4B.8)...b|
182 182 00f0: 20 03 6a ca c2 2c db 2f f7 2c fa 6d fc fb 34 be | .j..,./.,.m..4.|
183 183 0100: fc 5c 21 a2 39 cb 66 77 7c 00 0d c3 59 17 14 58 |.\!.9.fw|...Y..X|
184 184 0110: 49 16 06 29 a9 a6 29 86 c6 16 e6 a6 16 a6 26 86 |I..)..).......&.|
185 185 0120: c9 a6 69 06 a6 46 66 a6 89 29 86 26 26 89 49 96 |..i..Ff..).&&.I.|
186 186 0130: 69 89 16 66 29 86 29 49 5c 20 07 3e 16 fe 23 ae |i..f).)I\ .>..#.|
187 187 0140: 26 da 1c ab 10 1f d1 f8 e3 b3 ef cd dd fc 0c 93 |&...............|
188 188 0150: 88 75 34 36 75 04 82 55 17 14 36 a4 38 10 04 d8 |.u46u..U..6.8...|
189 189 0160: 21 01 9a b1 83 f7 e9 45 8b d2 56 c7 a3 1f 82 52 |!......E..V....R|
190 190 0170: d7 8a 78 ed fc d5 76 f1 36 25 81 89 c7 ad ec 90 |..x...v.6%......|
191 191 0180: 54 47 75 2b 89 49 b1 00 d2 8a eb 92 |TGu+.I......|
192 192
193 193 $ echo "http://localhost:$HGPORT1/full.hg" > server/.hg/clonebundles.manifest
194 194 $ hg clone -U http://localhost:$HGPORT full-bundle
195 195 applying clone bundle from http://localhost:$HGPORT1/full.hg
196 196 adding changesets
197 197 adding manifests
198 198 adding file changes
199 199 added 2 changesets with 2 changes to 2 files
200 200 finished applying clone bundle
201 201 searching for changes
202 202 no changes found
203 203
204 204 Feature works over SSH
205 205
206 206 $ hg clone -U -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" ssh://user@dummy/server ssh-full-clone
207 207 applying clone bundle from http://localhost:$HGPORT1/full.hg
208 208 adding changesets
209 209 adding manifests
210 210 adding file changes
211 211 added 2 changesets with 2 changes to 2 files
212 212 finished applying clone bundle
213 213 searching for changes
214 214 no changes found
215 215
216 216 Entry with unknown BUNDLESPEC is filtered and not used
217 217
218 218 $ cat > server/.hg/clonebundles.manifest << EOF
219 219 > http://bad.entry1 BUNDLESPEC=UNKNOWN
220 220 > http://bad.entry2 BUNDLESPEC=xz-v1
221 221 > http://bad.entry3 BUNDLESPEC=none-v100
222 222 > http://localhost:$HGPORT1/full.hg BUNDLESPEC=gzip-v2
223 223 > EOF
224 224
225 225 $ hg clone -U http://localhost:$HGPORT filter-unknown-type
226 226 applying clone bundle from http://localhost:$HGPORT1/full.hg
227 227 adding changesets
228 228 adding manifests
229 229 adding file changes
230 230 added 2 changesets with 2 changes to 2 files
231 231 finished applying clone bundle
232 232 searching for changes
233 233 no changes found
234 234
235 235 Automatic fallback when all entries are filtered
236 236
237 237 $ cat > server/.hg/clonebundles.manifest << EOF
238 238 > http://bad.entry BUNDLESPEC=UNKNOWN
239 239 > EOF
240 240
241 241 $ hg clone -U http://localhost:$HGPORT filter-all
242 242 no compatible clone bundles available on server; falling back to regular clone
243 243 (you may want to report this to the server operator)
244 244 requesting all changes
245 245 adding changesets
246 246 adding manifests
247 247 adding file changes
248 248 added 2 changesets with 2 changes to 2 files
249 249 new changesets 53245c60e682:aaff8d2ffbbf
250 250
251 251 URLs requiring SNI are filtered in Python <2.7.9
252 252
253 253 $ cp full.hg sni.hg
254 254 $ cat > server/.hg/clonebundles.manifest << EOF
255 255 > http://localhost:$HGPORT1/sni.hg REQUIRESNI=true
256 256 > http://localhost:$HGPORT1/full.hg
257 257 > EOF
258 258
259 259 #if sslcontext
260 260 Python 2.7.9+ support SNI
261 261
262 262 $ hg clone -U http://localhost:$HGPORT sni-supported
263 263 applying clone bundle from http://localhost:$HGPORT1/sni.hg
264 264 adding changesets
265 265 adding manifests
266 266 adding file changes
267 267 added 2 changesets with 2 changes to 2 files
268 268 finished applying clone bundle
269 269 searching for changes
270 270 no changes found
271 271 #else
272 272 Python <2.7.9 will filter SNI URLs
273 273
274 274 $ hg clone -U http://localhost:$HGPORT sni-unsupported
275 275 applying clone bundle from http://localhost:$HGPORT1/full.hg
276 276 adding changesets
277 277 adding manifests
278 278 adding file changes
279 279 added 2 changesets with 2 changes to 2 files
280 280 finished applying clone bundle
281 281 searching for changes
282 282 no changes found
283 283 #endif
284 284
285 285 Stream clone bundles are supported
286 286
287 287 $ hg -R server debugcreatestreamclonebundle packed.hg
288 288 writing 613 bytes for 4 files
289 289 bundle requirements: generaldelta, revlogv1
290 290
291 291 No bundle spec should work
292 292
293 293 $ cat > server/.hg/clonebundles.manifest << EOF
294 294 > http://localhost:$HGPORT1/packed.hg
295 295 > EOF
296 296
297 297 $ hg clone -U http://localhost:$HGPORT stream-clone-no-spec
298 298 applying clone bundle from http://localhost:$HGPORT1/packed.hg
299 299 4 files to transfer, 613 bytes of data
300 300 transferred 613 bytes in *.* seconds (*) (glob)
301 301 finished applying clone bundle
302 302 searching for changes
303 303 no changes found
304 304
305 305 Bundle spec without parameters should work
306 306
307 307 $ cat > server/.hg/clonebundles.manifest << EOF
308 308 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1
309 309 > EOF
310 310
311 311 $ hg clone -U http://localhost:$HGPORT stream-clone-vanilla-spec
312 312 applying clone bundle from http://localhost:$HGPORT1/packed.hg
313 313 4 files to transfer, 613 bytes of data
314 314 transferred 613 bytes in *.* seconds (*) (glob)
315 315 finished applying clone bundle
316 316 searching for changes
317 317 no changes found
318 318
319 319 Bundle spec with format requirements should work
320 320
321 321 $ cat > server/.hg/clonebundles.manifest << EOF
322 322 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv1
323 323 > EOF
324 324
325 325 $ hg clone -U http://localhost:$HGPORT stream-clone-supported-requirements
326 326 applying clone bundle from http://localhost:$HGPORT1/packed.hg
327 327 4 files to transfer, 613 bytes of data
328 328 transferred 613 bytes in *.* seconds (*) (glob)
329 329 finished applying clone bundle
330 330 searching for changes
331 331 no changes found
332 332
333 333 Stream bundle spec with unknown requirements should be filtered out
334 334
335 335 $ cat > server/.hg/clonebundles.manifest << EOF
336 336 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv42
337 337 > EOF
338 338
339 339 $ hg clone -U http://localhost:$HGPORT stream-clone-unsupported-requirements
340 340 no compatible clone bundles available on server; falling back to regular clone
341 341 (you may want to report this to the server operator)
342 342 requesting all changes
343 343 adding changesets
344 344 adding manifests
345 345 adding file changes
346 346 added 2 changesets with 2 changes to 2 files
347 347 new changesets 53245c60e682:aaff8d2ffbbf
348 348
349 349 Set up manifest for testing preferences
350 350 (Remember, the TYPE does not have to match reality - the URL is
351 351 important)
352 352
353 353 $ cp full.hg gz-a.hg
354 354 $ cp full.hg gz-b.hg
355 355 $ cp full.hg bz2-a.hg
356 356 $ cp full.hg bz2-b.hg
357 357 $ cat > server/.hg/clonebundles.manifest << EOF
358 358 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2 extra=a
359 359 > http://localhost:$HGPORT1/bz2-a.hg BUNDLESPEC=bzip2-v2 extra=a
360 360 > http://localhost:$HGPORT1/gz-b.hg BUNDLESPEC=gzip-v2 extra=b
361 361 > http://localhost:$HGPORT1/bz2-b.hg BUNDLESPEC=bzip2-v2 extra=b
362 362 > EOF
363 363
364 364 Preferring an undefined attribute will take first entry
365 365
366 366 $ hg --config ui.clonebundleprefers=foo=bar clone -U http://localhost:$HGPORT prefer-foo
367 367 applying clone bundle from http://localhost:$HGPORT1/gz-a.hg
368 368 adding changesets
369 369 adding manifests
370 370 adding file changes
371 371 added 2 changesets with 2 changes to 2 files
372 372 finished applying clone bundle
373 373 searching for changes
374 374 no changes found
375 375
376 376 Preferring bz2 type will download first entry of that type
377 377
378 378 $ hg --config ui.clonebundleprefers=COMPRESSION=bzip2 clone -U http://localhost:$HGPORT prefer-bz
379 379 applying clone bundle from http://localhost:$HGPORT1/bz2-a.hg
380 380 adding changesets
381 381 adding manifests
382 382 adding file changes
383 383 added 2 changesets with 2 changes to 2 files
384 384 finished applying clone bundle
385 385 searching for changes
386 386 no changes found
387 387
388 388 Preferring multiple values of an option works
389 389
390 390 $ hg --config ui.clonebundleprefers=COMPRESSION=unknown,COMPRESSION=bzip2 clone -U http://localhost:$HGPORT prefer-multiple-bz
391 391 applying clone bundle from http://localhost:$HGPORT1/bz2-a.hg
392 392 adding changesets
393 393 adding manifests
394 394 adding file changes
395 395 added 2 changesets with 2 changes to 2 files
396 396 finished applying clone bundle
397 397 searching for changes
398 398 no changes found
399 399
400 400 Sorting multiple values should get us back to original first entry
401 401
402 402 $ hg --config ui.clonebundleprefers=BUNDLESPEC=unknown,BUNDLESPEC=gzip-v2,BUNDLESPEC=bzip2-v2 clone -U http://localhost:$HGPORT prefer-multiple-gz
403 403 applying clone bundle from http://localhost:$HGPORT1/gz-a.hg
404 404 adding changesets
405 405 adding manifests
406 406 adding file changes
407 407 added 2 changesets with 2 changes to 2 files
408 408 finished applying clone bundle
409 409 searching for changes
410 410 no changes found
411 411
412 412 Preferring multiple attributes has correct order
413 413
414 414 $ hg --config ui.clonebundleprefers=extra=b,BUNDLESPEC=bzip2-v2 clone -U http://localhost:$HGPORT prefer-separate-attributes
415 415 applying clone bundle from http://localhost:$HGPORT1/bz2-b.hg
416 416 adding changesets
417 417 adding manifests
418 418 adding file changes
419 419 added 2 changesets with 2 changes to 2 files
420 420 finished applying clone bundle
421 421 searching for changes
422 422 no changes found
423 423
424 424 Test where attribute is missing from some entries
425 425
426 426 $ cat > server/.hg/clonebundles.manifest << EOF
427 427 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
428 428 > http://localhost:$HGPORT1/bz2-a.hg BUNDLESPEC=bzip2-v2
429 429 > http://localhost:$HGPORT1/gz-b.hg BUNDLESPEC=gzip-v2 extra=b
430 430 > http://localhost:$HGPORT1/bz2-b.hg BUNDLESPEC=bzip2-v2 extra=b
431 431 > EOF
432 432
433 433 $ hg --config ui.clonebundleprefers=extra=b clone -U http://localhost:$HGPORT prefer-partially-defined-attribute
434 434 applying clone bundle from http://localhost:$HGPORT1/gz-b.hg
435 435 adding changesets
436 436 adding manifests
437 437 adding file changes
438 438 added 2 changesets with 2 changes to 2 files
439 439 finished applying clone bundle
440 440 searching for changes
441 441 no changes found
442 442
443 443 Test interaction between clone bundles and --stream
444 444
445 445 A manifest with just a gzip bundle
446 446
447 447 $ cat > server/.hg/clonebundles.manifest << EOF
448 448 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
449 449 > EOF
450 450
451 451 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip
452 452 no compatible clone bundles available on server; falling back to regular clone
453 453 (you may want to report this to the server operator)
454 454 streaming all changes
455 455 4 files to transfer, 613 bytes of data
456 456 transferred 613 bytes in * seconds (*) (glob)
457 457 searching for changes
458 458 no changes found
459 459
460 460 A manifest with a stream clone but no BUNDLESPEC
461 461
462 462 $ cat > server/.hg/clonebundles.manifest << EOF
463 463 > http://localhost:$HGPORT1/packed.hg
464 464 > EOF
465 465
466 466 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-no-bundlespec
467 467 no compatible clone bundles available on server; falling back to regular clone
468 468 (you may want to report this to the server operator)
469 469 streaming all changes
470 470 4 files to transfer, 613 bytes of data
471 471 transferred 613 bytes in * seconds (*) (glob)
472 472 searching for changes
473 473 no changes found
474 474
475 475 A manifest with a gzip bundle and a stream clone
476 476
477 477 $ cat > server/.hg/clonebundles.manifest << EOF
478 478 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
479 479 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1
480 480 > EOF
481 481
482 482 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip-packed
483 483 applying clone bundle from http://localhost:$HGPORT1/packed.hg
484 484 4 files to transfer, 613 bytes of data
485 485 transferred 613 bytes in * seconds (*) (glob)
486 486 finished applying clone bundle
487 487 searching for changes
488 488 no changes found
489 489
490 490 A manifest with a gzip bundle and stream clone with supported requirements
491 491
492 492 $ cat > server/.hg/clonebundles.manifest << EOF
493 493 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
494 494 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv1
495 495 > EOF
496 496
497 497 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip-packed-requirements
498 498 applying clone bundle from http://localhost:$HGPORT1/packed.hg
499 499 4 files to transfer, 613 bytes of data
500 500 transferred 613 bytes in * seconds (*) (glob)
501 501 finished applying clone bundle
502 502 searching for changes
503 503 no changes found
504 504
505 505 A manifest with a gzip bundle and a stream clone with unsupported requirements
506 506
507 507 $ cat > server/.hg/clonebundles.manifest << EOF
508 508 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
509 509 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv42
510 510 > EOF
511 511
512 512 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip-packed-unsupported-requirements
513 513 no compatible clone bundles available on server; falling back to regular clone
514 514 (you may want to report this to the server operator)
515 515 streaming all changes
516 516 4 files to transfer, 613 bytes of data
517 517 transferred 613 bytes in * seconds (*) (glob)
518 518 searching for changes
519 519 no changes found
@@ -1,272 +1,272
1 1 #require serve
2 2
3 3 = Test the getbundle() protocol function =
4 4
5 5 Create a test repository:
6 6
7 7 $ hg init repo
8 8 $ cd repo
9 9 $ hg debugbuilddag -n -m '+2 :fork +5 :p1 *fork +6 :p2 /p1 :m1 +3' > /dev/null
10 10 $ hg log -G --template '{node}\n'
11 11 o 10c14a2cc935e1d8c31f9e98587dcf27fb08a6da
12 12 |
13 13 o 4801a72e5d88cb515b0c7e40fae34180f3f837f2
14 14 |
15 15 o 0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
16 16 |
17 17 o 8365676dbab05860ce0d9110f2af51368b961bbd
18 18 |\
19 19 | o 5686dbbd9fc46cb806599c878d02fe1cb56b83d3
20 20 | |
21 21 | o 13c0170174366b441dc68e8e33757232fa744458
22 22 | |
23 23 | o 63476832d8ec6558cf9bbe3cbe0c757e5cf18043
24 24 | |
25 25 | o 700b7e19db54103633c4bf4a6a6b6d55f4d50c03
26 26 | |
27 27 | o 928b5f94cdb278bb536eba552de348a4e92ef24d
28 28 | |
29 29 | o f34414c64173e0ecb61b25dc55e116dbbcc89bee
30 30 | |
31 31 | o 8931463777131cd73923e560b760061f2aa8a4bc
32 32 | |
33 33 o | 6621d79f61b23ec74cf4b69464343d9e0980ec8b
34 34 | |
35 35 o | bac16991d12ff45f9dc43c52da1946dfadb83e80
36 36 | |
37 37 o | ff42371d57168345fdf1a3aac66a51f6a45d41d2
38 38 | |
39 39 o | d5f6e1ea452285324836a49d7d3c2a63cfed1d31
40 40 | |
41 41 o | 713346a995c363120712aed1aee7e04afd867638
42 42 |/
43 43 o 29a4d1f17bd3f0779ca0525bebb1cfb51067c738
44 44 |
45 45 o 7704483d56b2a7b5db54dcee7c62378ac629b348
46 46
47 47 $ cd ..
48 48
49 49
50 50 = Test locally =
51 51
52 52 Get everything:
53 53
54 54 $ hg debuggetbundle repo bundle
55 55 $ hg debugbundle bundle
56 56 7704483d56b2a7b5db54dcee7c62378ac629b348
57 57 29a4d1f17bd3f0779ca0525bebb1cfb51067c738
58 58 713346a995c363120712aed1aee7e04afd867638
59 59 d5f6e1ea452285324836a49d7d3c2a63cfed1d31
60 60 ff42371d57168345fdf1a3aac66a51f6a45d41d2
61 61 bac16991d12ff45f9dc43c52da1946dfadb83e80
62 62 6621d79f61b23ec74cf4b69464343d9e0980ec8b
63 63 8931463777131cd73923e560b760061f2aa8a4bc
64 64 f34414c64173e0ecb61b25dc55e116dbbcc89bee
65 65 928b5f94cdb278bb536eba552de348a4e92ef24d
66 66 700b7e19db54103633c4bf4a6a6b6d55f4d50c03
67 67 63476832d8ec6558cf9bbe3cbe0c757e5cf18043
68 68 13c0170174366b441dc68e8e33757232fa744458
69 69 5686dbbd9fc46cb806599c878d02fe1cb56b83d3
70 70 8365676dbab05860ce0d9110f2af51368b961bbd
71 71 0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
72 72 4801a72e5d88cb515b0c7e40fae34180f3f837f2
73 73 10c14a2cc935e1d8c31f9e98587dcf27fb08a6da
74 74
75 75 Get part of linear run:
76 76
77 77 $ hg debuggetbundle repo bundle -H 4801a72e5d88cb515b0c7e40fae34180f3f837f2 -C 8365676dbab05860ce0d9110f2af51368b961bbd
78 78 $ hg debugbundle bundle
79 79 0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
80 80 4801a72e5d88cb515b0c7e40fae34180f3f837f2
81 81
82 82 Get missing branch and merge:
83 83
84 84 $ hg debuggetbundle repo bundle -H 4801a72e5d88cb515b0c7e40fae34180f3f837f2 -C 13c0170174366b441dc68e8e33757232fa744458
85 85 $ hg debugbundle bundle
86 86 713346a995c363120712aed1aee7e04afd867638
87 87 d5f6e1ea452285324836a49d7d3c2a63cfed1d31
88 88 ff42371d57168345fdf1a3aac66a51f6a45d41d2
89 89 bac16991d12ff45f9dc43c52da1946dfadb83e80
90 90 6621d79f61b23ec74cf4b69464343d9e0980ec8b
91 91 5686dbbd9fc46cb806599c878d02fe1cb56b83d3
92 92 8365676dbab05860ce0d9110f2af51368b961bbd
93 93 0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
94 94 4801a72e5d88cb515b0c7e40fae34180f3f837f2
95 95
96 96 Get from only one head:
97 97
98 98 $ hg debuggetbundle repo bundle -H 928b5f94cdb278bb536eba552de348a4e92ef24d -C 29a4d1f17bd3f0779ca0525bebb1cfb51067c738
99 99 $ hg debugbundle bundle
100 100 8931463777131cd73923e560b760061f2aa8a4bc
101 101 f34414c64173e0ecb61b25dc55e116dbbcc89bee
102 102 928b5f94cdb278bb536eba552de348a4e92ef24d
103 103
104 104 Get parts of two branches:
105 105
106 106 $ hg debuggetbundle repo bundle -H 13c0170174366b441dc68e8e33757232fa744458 -C 700b7e19db54103633c4bf4a6a6b6d55f4d50c03 -H bac16991d12ff45f9dc43c52da1946dfadb83e80 -C d5f6e1ea452285324836a49d7d3c2a63cfed1d31
107 107 $ hg debugbundle bundle
108 108 ff42371d57168345fdf1a3aac66a51f6a45d41d2
109 109 bac16991d12ff45f9dc43c52da1946dfadb83e80
110 110 63476832d8ec6558cf9bbe3cbe0c757e5cf18043
111 111 13c0170174366b441dc68e8e33757232fa744458
112 112
113 113 Check that we get all needed file changes:
114 114
115 115 $ hg debugbundle bundle --all
116 116 format: id, p1, p2, cset, delta base, len(delta)
117 117
118 118 changelog
119 119 ff42371d57168345fdf1a3aac66a51f6a45d41d2 d5f6e1ea452285324836a49d7d3c2a63cfed1d31 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 d5f6e1ea452285324836a49d7d3c2a63cfed1d31 99
120 120 bac16991d12ff45f9dc43c52da1946dfadb83e80 ff42371d57168345fdf1a3aac66a51f6a45d41d2 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 ff42371d57168345fdf1a3aac66a51f6a45d41d2 99
121 121 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 700b7e19db54103633c4bf4a6a6b6d55f4d50c03 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 bac16991d12ff45f9dc43c52da1946dfadb83e80 102
122 122 13c0170174366b441dc68e8e33757232fa744458 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 102
123 123
124 124 manifest
125 125 dac7984588fc4eea7acbf39693a9c1b06f5b175d 591f732a3faf1fb903815273f3c199a514a61ccb 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 591f732a3faf1fb903815273f3c199a514a61ccb 113
126 126 0772616e6b48a76afb6c1458e193cbb3dae2e4ff dac7984588fc4eea7acbf39693a9c1b06f5b175d 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 dac7984588fc4eea7acbf39693a9c1b06f5b175d 113
127 127 eb498cd9af6c44108e43041e951ce829e29f6c80 bff2f4817ced57b386caf7c4e3e36a4bc9af7e93 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0772616e6b48a76afb6c1458e193cbb3dae2e4ff 295
128 128 b15709c071ddd2d93188508ba156196ab4f19620 eb498cd9af6c44108e43041e951ce829e29f6c80 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 eb498cd9af6c44108e43041e951ce829e29f6c80 114
129 129
130 130 mf
131 131 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 17
132 132 c7b583de053293870e145f45bd2d61643563fd06 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 18
133 133 266ee3c0302a5a18f1cf96817ac79a51836179e9 edc0f6b8db80d68ae6aff2b19f7e5347ab68fa63 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 c7b583de053293870e145f45bd2d61643563fd06 149
134 134 698c6a36220548cd3903ca7dada27c59aa500c52 266ee3c0302a5a18f1cf96817ac79a51836179e9 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 266ee3c0302a5a18f1cf96817ac79a51836179e9 19
135 135
136 136 nf11
137 137 33fbc651630ffa7ccbebfe4eb91320a873e7291c 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0000000000000000000000000000000000000000 16
138 138
139 139 nf12
140 140 ddce0544363f037e9fb889faca058f52dc01c0a5 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 0000000000000000000000000000000000000000 16
141 141
142 142 nf4
143 143 3c1407305701051cbed9f9cb9a68bdfb5997c235 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 0000000000000000000000000000000000000000 15
144 144
145 145 nf5
146 146 0dbd89c185f53a1727c54cd1ce256482fa23968e 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 0000000000000000000000000000000000000000 15
147 147
148 148 Get branch and merge:
149 149
150 150 $ hg debuggetbundle repo bundle -C 7704483d56b2a7b5db54dcee7c62378ac629b348 -H 0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
151 151 $ hg debugbundle bundle
152 152 29a4d1f17bd3f0779ca0525bebb1cfb51067c738
153 153 713346a995c363120712aed1aee7e04afd867638
154 154 d5f6e1ea452285324836a49d7d3c2a63cfed1d31
155 155 ff42371d57168345fdf1a3aac66a51f6a45d41d2
156 156 bac16991d12ff45f9dc43c52da1946dfadb83e80
157 157 6621d79f61b23ec74cf4b69464343d9e0980ec8b
158 158 8931463777131cd73923e560b760061f2aa8a4bc
159 159 f34414c64173e0ecb61b25dc55e116dbbcc89bee
160 160 928b5f94cdb278bb536eba552de348a4e92ef24d
161 161 700b7e19db54103633c4bf4a6a6b6d55f4d50c03
162 162 63476832d8ec6558cf9bbe3cbe0c757e5cf18043
163 163 13c0170174366b441dc68e8e33757232fa744458
164 164 5686dbbd9fc46cb806599c878d02fe1cb56b83d3
165 165 8365676dbab05860ce0d9110f2af51368b961bbd
166 166 0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
167 167
168 168 = Test bundle2 =
169 169
170 170 $ hg debuggetbundle repo bundle -t bundle2
171 171 $ hg debugbundle bundle
172 172 Stream params: {}
173 173 changegroup -- {version: 01}
174 174 7704483d56b2a7b5db54dcee7c62378ac629b348
175 175 29a4d1f17bd3f0779ca0525bebb1cfb51067c738
176 176 713346a995c363120712aed1aee7e04afd867638
177 177 d5f6e1ea452285324836a49d7d3c2a63cfed1d31
178 178 ff42371d57168345fdf1a3aac66a51f6a45d41d2
179 179 bac16991d12ff45f9dc43c52da1946dfadb83e80
180 180 6621d79f61b23ec74cf4b69464343d9e0980ec8b
181 181 8931463777131cd73923e560b760061f2aa8a4bc
182 182 f34414c64173e0ecb61b25dc55e116dbbcc89bee
183 183 928b5f94cdb278bb536eba552de348a4e92ef24d
184 184 700b7e19db54103633c4bf4a6a6b6d55f4d50c03
185 185 63476832d8ec6558cf9bbe3cbe0c757e5cf18043
186 186 13c0170174366b441dc68e8e33757232fa744458
187 187 5686dbbd9fc46cb806599c878d02fe1cb56b83d3
188 188 8365676dbab05860ce0d9110f2af51368b961bbd
189 189 0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
190 190 4801a72e5d88cb515b0c7e40fae34180f3f837f2
191 191 10c14a2cc935e1d8c31f9e98587dcf27fb08a6da
192 192 = Test via HTTP =
193 193
194 194 Get everything:
195 195
196 196 $ hg serve -R repo -p $HGPORT -d --pid-file=hg.pid -E error.log -A access.log
197 197 $ cat hg.pid >> $DAEMON_PIDS
198 198 $ hg debuggetbundle http://localhost:$HGPORT/ bundle
199 199 $ hg debugbundle bundle
200 200 7704483d56b2a7b5db54dcee7c62378ac629b348
201 201 29a4d1f17bd3f0779ca0525bebb1cfb51067c738
202 202 713346a995c363120712aed1aee7e04afd867638
203 203 d5f6e1ea452285324836a49d7d3c2a63cfed1d31
204 204 ff42371d57168345fdf1a3aac66a51f6a45d41d2
205 205 bac16991d12ff45f9dc43c52da1946dfadb83e80
206 206 6621d79f61b23ec74cf4b69464343d9e0980ec8b
207 207 8931463777131cd73923e560b760061f2aa8a4bc
208 208 f34414c64173e0ecb61b25dc55e116dbbcc89bee
209 209 928b5f94cdb278bb536eba552de348a4e92ef24d
210 210 700b7e19db54103633c4bf4a6a6b6d55f4d50c03
211 211 63476832d8ec6558cf9bbe3cbe0c757e5cf18043
212 212 13c0170174366b441dc68e8e33757232fa744458
213 213 5686dbbd9fc46cb806599c878d02fe1cb56b83d3
214 214 8365676dbab05860ce0d9110f2af51368b961bbd
215 215 0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
216 216 4801a72e5d88cb515b0c7e40fae34180f3f837f2
217 217 10c14a2cc935e1d8c31f9e98587dcf27fb08a6da
218 218
219 219 Get parts of two branches:
220 220
221 221 $ hg debuggetbundle http://localhost:$HGPORT/ bundle -H 13c0170174366b441dc68e8e33757232fa744458 -C 700b7e19db54103633c4bf4a6a6b6d55f4d50c03 -H bac16991d12ff45f9dc43c52da1946dfadb83e80 -C d5f6e1ea452285324836a49d7d3c2a63cfed1d31
222 222 $ hg debugbundle bundle
223 223 ff42371d57168345fdf1a3aac66a51f6a45d41d2
224 224 bac16991d12ff45f9dc43c52da1946dfadb83e80
225 225 63476832d8ec6558cf9bbe3cbe0c757e5cf18043
226 226 13c0170174366b441dc68e8e33757232fa744458
227 227
228 228 Check that we get all needed file changes:
229 229
230 230 $ hg debugbundle bundle --all
231 231 format: id, p1, p2, cset, delta base, len(delta)
232 232
233 233 changelog
234 234 ff42371d57168345fdf1a3aac66a51f6a45d41d2 d5f6e1ea452285324836a49d7d3c2a63cfed1d31 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 d5f6e1ea452285324836a49d7d3c2a63cfed1d31 99
235 235 bac16991d12ff45f9dc43c52da1946dfadb83e80 ff42371d57168345fdf1a3aac66a51f6a45d41d2 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 ff42371d57168345fdf1a3aac66a51f6a45d41d2 99
236 236 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 700b7e19db54103633c4bf4a6a6b6d55f4d50c03 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 bac16991d12ff45f9dc43c52da1946dfadb83e80 102
237 237 13c0170174366b441dc68e8e33757232fa744458 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 102
238 238
239 239 manifest
240 240 dac7984588fc4eea7acbf39693a9c1b06f5b175d 591f732a3faf1fb903815273f3c199a514a61ccb 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 591f732a3faf1fb903815273f3c199a514a61ccb 113
241 241 0772616e6b48a76afb6c1458e193cbb3dae2e4ff dac7984588fc4eea7acbf39693a9c1b06f5b175d 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 dac7984588fc4eea7acbf39693a9c1b06f5b175d 113
242 242 eb498cd9af6c44108e43041e951ce829e29f6c80 bff2f4817ced57b386caf7c4e3e36a4bc9af7e93 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0772616e6b48a76afb6c1458e193cbb3dae2e4ff 295
243 243 b15709c071ddd2d93188508ba156196ab4f19620 eb498cd9af6c44108e43041e951ce829e29f6c80 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 eb498cd9af6c44108e43041e951ce829e29f6c80 114
244 244
245 245 mf
246 246 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 17
247 247 c7b583de053293870e145f45bd2d61643563fd06 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 18
248 248 266ee3c0302a5a18f1cf96817ac79a51836179e9 edc0f6b8db80d68ae6aff2b19f7e5347ab68fa63 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 c7b583de053293870e145f45bd2d61643563fd06 149
249 249 698c6a36220548cd3903ca7dada27c59aa500c52 266ee3c0302a5a18f1cf96817ac79a51836179e9 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 266ee3c0302a5a18f1cf96817ac79a51836179e9 19
250 250
251 251 nf11
252 252 33fbc651630ffa7ccbebfe4eb91320a873e7291c 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0000000000000000000000000000000000000000 16
253 253
254 254 nf12
255 255 ddce0544363f037e9fb889faca058f52dc01c0a5 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 0000000000000000000000000000000000000000 16
256 256
257 257 nf4
258 258 3c1407305701051cbed9f9cb9a68bdfb5997c235 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 0000000000000000000000000000000000000000 15
259 259
260 260 nf5
261 261 0dbd89c185f53a1727c54cd1ce256482fa23968e 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 0000000000000000000000000000000000000000 15
262 262
263 263 Verify we hit the HTTP server:
264 264
265 265 $ cat access.log
266 266 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
267 $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
267 $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
268 268 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
269 $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:common=700b7e19db54103633c4bf4a6a6b6d55f4d50c03+d5f6e1ea452285324836a49d7d3c2a63cfed1d31&heads=13c0170174366b441dc68e8e33757232fa744458+bac16991d12ff45f9dc43c52da1946dfadb83e80 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
269 $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:common=700b7e19db54103633c4bf4a6a6b6d55f4d50c03+d5f6e1ea452285324836a49d7d3c2a63cfed1d31&heads=13c0170174366b441dc68e8e33757232fa744458+bac16991d12ff45f9dc43c52da1946dfadb83e80 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
270 270
271 271 $ cat error.log
272 272
@@ -1,125 +1,125
1 1 #require serve
2 2
3 3 $ hg init a
4 4 $ cd a
5 5 $ echo a > a
6 6 $ hg ci -Ama -d '1123456789 0'
7 7 adding a
8 8 $ hg serve --config server.uncompressed=True -p $HGPORT -d --pid-file=hg.pid
9 9 $ cat hg.pid >> $DAEMON_PIDS
10 10 $ cd ..
11 11 $ tinyproxy.py $HGPORT1 localhost 2>proxy.log >/dev/null </dev/null &
12 12 $ while [ ! -f proxy.pid ]; do sleep 0; done
13 13 $ cat proxy.pid >> $DAEMON_PIDS
14 14
15 15 url for proxy, stream
16 16
17 17 $ http_proxy=http://localhost:$HGPORT1/ hg --config http_proxy.always=True clone --stream http://localhost:$HGPORT/ b
18 18 streaming all changes
19 19 3 files to transfer, 303 bytes of data
20 20 transferred * bytes in * seconds (*/sec) (glob)
21 21 searching for changes
22 22 no changes found
23 23 updating to branch default
24 24 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
25 25 $ cd b
26 26 $ hg verify
27 27 checking changesets
28 28 checking manifests
29 29 crosschecking files in changesets and manifests
30 30 checking files
31 31 1 files, 1 changesets, 1 total revisions
32 32 $ cd ..
33 33
34 34 url for proxy, pull
35 35
36 36 $ http_proxy=http://localhost:$HGPORT1/ hg --config http_proxy.always=True clone http://localhost:$HGPORT/ b-pull
37 37 requesting all changes
38 38 adding changesets
39 39 adding manifests
40 40 adding file changes
41 41 added 1 changesets with 1 changes to 1 files
42 42 new changesets 83180e7845de
43 43 updating to branch default
44 44 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
45 45 $ cd b-pull
46 46 $ hg verify
47 47 checking changesets
48 48 checking manifests
49 49 crosschecking files in changesets and manifests
50 50 checking files
51 51 1 files, 1 changesets, 1 total revisions
52 52 $ cd ..
53 53
54 54 host:port for proxy
55 55
56 56 $ http_proxy=localhost:$HGPORT1 hg clone --config http_proxy.always=True http://localhost:$HGPORT/ c
57 57 requesting all changes
58 58 adding changesets
59 59 adding manifests
60 60 adding file changes
61 61 added 1 changesets with 1 changes to 1 files
62 62 new changesets 83180e7845de
63 63 updating to branch default
64 64 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
65 65
66 66 proxy url with user name and password
67 67
68 68 $ http_proxy=http://user:passwd@localhost:$HGPORT1 hg clone --config http_proxy.always=True http://localhost:$HGPORT/ d
69 69 requesting all changes
70 70 adding changesets
71 71 adding manifests
72 72 adding file changes
73 73 added 1 changesets with 1 changes to 1 files
74 74 new changesets 83180e7845de
75 75 updating to branch default
76 76 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
77 77
78 78 url with user name and password
79 79
80 80 $ http_proxy=http://user:passwd@localhost:$HGPORT1 hg clone --config http_proxy.always=True http://user:passwd@localhost:$HGPORT/ e
81 81 requesting all changes
82 82 adding changesets
83 83 adding manifests
84 84 adding file changes
85 85 added 1 changesets with 1 changes to 1 files
86 86 new changesets 83180e7845de
87 87 updating to branch default
88 88 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
89 89
90 90 bad host:port for proxy ("Protocol not supported" can happen on
91 91 misconfigured hosts)
92 92
93 93 $ http_proxy=localhost:$HGPORT2 hg clone --config http_proxy.always=True http://localhost:$HGPORT/ f
94 94 abort: error: (Connection refused|Protocol not supported|.* actively refused it|Cannot assign requested address) (re)
95 95 [255]
96 96
97 97 do not use the proxy if it is in the no list
98 98
99 99 $ http_proxy=localhost:$HGPORT1 hg clone --config http_proxy.no=localhost http://localhost:$HGPORT/ g
100 100 requesting all changes
101 101 adding changesets
102 102 adding manifests
103 103 adding file changes
104 104 added 1 changesets with 1 changes to 1 files
105 105 new changesets 83180e7845de
106 106 updating to branch default
107 107 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
108 108 $ cat proxy.log
109 109 * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
110 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=branchmap HTTP/1.1" - - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
111 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=stream_out HTTP/1.1" - - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
112 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D83180e7845de420a1bb46896fd5fe05294f8d629 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
113 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=0&common=83180e7845de420a1bb46896fd5fe05294f8d629&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
110 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=branchmap HTTP/1.1" - - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
111 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=stream_out HTTP/1.1" - - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
112 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D83180e7845de420a1bb46896fd5fe05294f8d629 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
113 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=0&common=83180e7845de420a1bb46896fd5fe05294f8d629&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
114 114 * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
115 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
116 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
115 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
116 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
117 117 * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
118 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
119 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
118 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
119 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
120 120 * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
121 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
122 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
121 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
122 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
123 123 * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
124 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
125 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
124 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
125 $LOCALIP - - [$LOGDATE$] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
@@ -1,454 +1,454
1 1 This file contains testcases that tend to be related to the wire protocol part
2 2 of largefiles.
3 3
4 4 $ USERCACHE="$TESTTMP/cache"; export USERCACHE
5 5 $ mkdir "${USERCACHE}"
6 6 $ cat >> $HGRCPATH <<EOF
7 7 > [extensions]
8 8 > largefiles=
9 9 > purge=
10 10 > rebase=
11 11 > transplant=
12 12 > [phases]
13 13 > publish=False
14 14 > [largefiles]
15 15 > minsize=2
16 16 > patterns=glob:**.dat
17 17 > usercache=${USERCACHE}
18 18 > [web]
19 19 > allow_archive = zip
20 20 > [hooks]
21 21 > precommit=sh -c "echo \\"Invoking status precommit hook\\"; hg status"
22 22 > EOF
23 23
24 24
25 25 #if serve
26 26 vanilla clients not locked out from largefiles servers on vanilla repos
27 27 $ mkdir r1
28 28 $ cd r1
29 29 $ hg init
30 30 $ echo c1 > f1
31 31 $ hg add f1
32 32 $ hg commit -m "m1"
33 33 Invoking status precommit hook
34 34 A f1
35 35 $ cd ..
36 36 $ hg serve -R r1 -d -p $HGPORT --pid-file hg.pid
37 37 $ cat hg.pid >> $DAEMON_PIDS
38 38 $ hg --config extensions.largefiles=! clone http://localhost:$HGPORT r2
39 39 requesting all changes
40 40 adding changesets
41 41 adding manifests
42 42 adding file changes
43 43 added 1 changesets with 1 changes to 1 files
44 44 new changesets b6eb3a2e2efe
45 45 updating to branch default
46 46 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
47 47
48 48 largefiles clients still work with vanilla servers
49 49 $ hg serve --config extensions.largefiles=! -R r1 -d -p $HGPORT1 --pid-file hg.pid
50 50 $ cat hg.pid >> $DAEMON_PIDS
51 51 $ hg clone http://localhost:$HGPORT1 r3
52 52 requesting all changes
53 53 adding changesets
54 54 adding manifests
55 55 adding file changes
56 56 added 1 changesets with 1 changes to 1 files
57 57 new changesets b6eb3a2e2efe
58 58 updating to branch default
59 59 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
60 60 #endif
61 61
62 62 vanilla clients locked out from largefiles http repos
63 63 $ mkdir r4
64 64 $ cd r4
65 65 $ hg init
66 66 $ echo c1 > f1
67 67 $ hg add --large f1
68 68 $ hg commit -m "m1"
69 69 Invoking status precommit hook
70 70 A f1
71 71 $ cd ..
72 72
73 73 largefiles can be pushed locally (issue3583)
74 74 $ hg init dest
75 75 $ cd r4
76 76 $ hg outgoing ../dest
77 77 comparing with ../dest
78 78 searching for changes
79 79 changeset: 0:639881c12b4c
80 80 tag: tip
81 81 user: test
82 82 date: Thu Jan 01 00:00:00 1970 +0000
83 83 summary: m1
84 84
85 85 $ hg push ../dest
86 86 pushing to ../dest
87 87 searching for changes
88 88 adding changesets
89 89 adding manifests
90 90 adding file changes
91 91 added 1 changesets with 1 changes to 1 files
92 92
93 93 exit code with nothing outgoing (issue3611)
94 94 $ hg outgoing ../dest
95 95 comparing with ../dest
96 96 searching for changes
97 97 no changes found
98 98 [1]
99 99 $ cd ..
100 100
101 101 #if serve
102 102 $ hg serve -R r4 -d -p $HGPORT2 --pid-file hg.pid
103 103 $ cat hg.pid >> $DAEMON_PIDS
104 104 $ hg --config extensions.largefiles=! clone http://localhost:$HGPORT2 r5
105 105 abort: remote error:
106 106
107 107 This repository uses the largefiles extension.
108 108
109 109 Please enable it in your Mercurial config file.
110 110 [255]
111 111
112 112 used all HGPORTs, kill all daemons
113 113 $ killdaemons.py
114 114 #endif
115 115
116 116 vanilla clients locked out from largefiles ssh repos
117 117 $ hg --config extensions.largefiles=! clone -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" ssh://user@dummy/r4 r5
118 118 remote:
119 119 remote: This repository uses the largefiles extension.
120 120 remote:
121 121 remote: Please enable it in your Mercurial config file.
122 122 remote:
123 123 remote: -
124 124 abort: remote error
125 125 (check previous remote output)
126 126 [255]
127 127
128 128 #if serve
129 129
130 130 largefiles clients refuse to push largefiles repos to vanilla servers
131 131 $ mkdir r6
132 132 $ cd r6
133 133 $ hg init
134 134 $ echo c1 > f1
135 135 $ hg add f1
136 136 $ hg commit -m "m1"
137 137 Invoking status precommit hook
138 138 A f1
139 139 $ cat >> .hg/hgrc <<!
140 140 > [web]
141 141 > push_ssl = false
142 142 > allow_push = *
143 143 > !
144 144 $ cd ..
145 145 $ hg clone r6 r7
146 146 updating to branch default
147 147 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
148 148 $ cd r7
149 149 $ echo c2 > f2
150 150 $ hg add --large f2
151 151 $ hg commit -m "m2"
152 152 Invoking status precommit hook
153 153 A f2
154 154 $ hg verify --large
155 155 checking changesets
156 156 checking manifests
157 157 crosschecking files in changesets and manifests
158 158 checking files
159 159 2 files, 2 changesets, 2 total revisions
160 160 searching 1 changesets for largefiles
161 161 verified existence of 1 revisions of 1 largefiles
162 162 $ hg serve --config extensions.largefiles=! -R ../r6 -d -p $HGPORT --pid-file ../hg.pid
163 163 $ cat ../hg.pid >> $DAEMON_PIDS
164 164 $ hg push http://localhost:$HGPORT
165 165 pushing to http://localhost:$HGPORT/
166 166 searching for changes
167 167 abort: http://localhost:$HGPORT/ does not appear to be a largefile store
168 168 [255]
169 169 $ cd ..
170 170
171 171 putlfile errors are shown (issue3123)
172 172 Corrupt the cached largefile in r7 and move it out of the servers usercache
173 173 $ mv r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8 .
174 174 $ echo 'client side corruption' > r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8
175 175 $ rm "$USERCACHE/4cdac4d8b084d0b599525cf732437fb337d422a8"
176 176 $ hg init empty
177 177 $ hg serve -R empty -d -p $HGPORT1 --pid-file hg.pid \
178 178 > --config 'web.allow_push=*' --config web.push_ssl=False
179 179 $ cat hg.pid >> $DAEMON_PIDS
180 180 $ hg push -R r7 http://localhost:$HGPORT1
181 181 pushing to http://localhost:$HGPORT1/
182 182 searching for changes
183 183 remote: largefiles: failed to put 4cdac4d8b084d0b599525cf732437fb337d422a8 into store: largefile contents do not match hash
184 184 abort: remotestore: could not put $TESTTMP/r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8 to remote store http://localhost:$HGPORT1/ (glob)
185 185 [255]
186 186 $ mv 4cdac4d8b084d0b599525cf732437fb337d422a8 r7/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8
187 187 Push of file that exists on server but is corrupted - magic healing would be nice ... but too magic
188 188 $ echo "server side corruption" > empty/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8
189 189 $ hg push -R r7 http://localhost:$HGPORT1
190 190 pushing to http://localhost:$HGPORT1/
191 191 searching for changes
192 192 remote: adding changesets
193 193 remote: adding manifests
194 194 remote: adding file changes
195 195 remote: added 2 changesets with 2 changes to 2 files
196 196 $ cat empty/.hg/largefiles/4cdac4d8b084d0b599525cf732437fb337d422a8
197 197 server side corruption
198 198 $ rm -rf empty
199 199
200 200 Push a largefiles repository to a served empty repository
201 201 $ hg init r8
202 202 $ echo c3 > r8/f1
203 203 $ hg add --large r8/f1 -R r8
204 204 $ hg commit -m "m1" -R r8
205 205 Invoking status precommit hook
206 206 A f1
207 207 $ hg init empty
208 208 $ hg serve -R empty -d -p $HGPORT2 --pid-file hg.pid \
209 209 > --config 'web.allow_push=*' --config web.push_ssl=False
210 210 $ cat hg.pid >> $DAEMON_PIDS
211 211 $ rm "${USERCACHE}"/*
212 212 $ hg push -R r8 http://localhost:$HGPORT2/#default
213 213 pushing to http://localhost:$HGPORT2/
214 214 searching for changes
215 215 remote: adding changesets
216 216 remote: adding manifests
217 217 remote: adding file changes
218 218 remote: added 1 changesets with 1 changes to 1 files
219 219 $ [ -f "${USERCACHE}"/02a439e5c31c526465ab1a0ca1f431f76b827b90 ]
220 220 $ [ -f empty/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90 ]
221 221
222 222 Clone over http, no largefiles pulled on clone.
223 223
224 224 $ hg clone http://localhost:$HGPORT2/#default http-clone -U
225 225 adding changesets
226 226 adding manifests
227 227 adding file changes
228 228 added 1 changesets with 1 changes to 1 files
229 229 new changesets cf03e5bb9936
230 230
231 231 Archive contains largefiles
232 232 >>> import os
233 233 >>> import urllib2
234 234 >>> u = 'http://localhost:%s/archive/default.zip' % os.environ['HGPORT2']
235 235 >>> with open('archive.zip', 'w') as f:
236 236 ... f.write(urllib2.urlopen(u).read())
237 237 $ unzip -t archive.zip
238 238 Archive: archive.zip
239 239 testing: empty-default/.hg_archival.txt*OK (glob)
240 240 testing: empty-default/f1*OK (glob)
241 241 No errors detected in compressed data of archive.zip.
242 242
243 243 test 'verify' with remotestore:
244 244
245 245 $ rm "${USERCACHE}"/02a439e5c31c526465ab1a0ca1f431f76b827b90
246 246 $ mv empty/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90 .
247 247 $ hg -R http-clone verify --large --lfa
248 248 checking changesets
249 249 checking manifests
250 250 crosschecking files in changesets and manifests
251 251 checking files
252 252 1 files, 1 changesets, 1 total revisions
253 253 searching 1 changesets for largefiles
254 254 changeset 0:cf03e5bb9936: f1 missing
255 255 verified existence of 1 revisions of 1 largefiles
256 256 [1]
257 257 $ mv 02a439e5c31c526465ab1a0ca1f431f76b827b90 empty/.hg/largefiles/
258 258 $ hg -R http-clone -q verify --large --lfa
259 259
260 260 largefiles pulled on update - a largefile missing on the server:
261 261 $ mv empty/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90 .
262 262 $ hg -R http-clone up --config largefiles.usercache=http-clone-usercache
263 263 getting changed largefiles
264 264 f1: largefile 02a439e5c31c526465ab1a0ca1f431f76b827b90 not available from http://localhost:$HGPORT2/
265 265 0 largefiles updated, 0 removed
266 266 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
267 267 $ hg -R http-clone st
268 268 ! f1
269 269 $ hg -R http-clone up -Cqr null
270 270
271 271 largefiles pulled on update - a largefile corrupted on the server:
272 272 $ echo corruption > empty/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90
273 273 $ hg -R http-clone up --config largefiles.usercache=http-clone-usercache
274 274 getting changed largefiles
275 275 f1: data corruption (expected 02a439e5c31c526465ab1a0ca1f431f76b827b90, got 6a7bb2556144babe3899b25e5428123735bb1e27)
276 276 0 largefiles updated, 0 removed
277 277 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
278 278 $ hg -R http-clone st
279 279 ! f1
280 280 $ [ ! -f http-clone/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90 ]
281 281 $ [ ! -f http-clone/f1 ]
282 282 $ [ ! -f http-clone-usercache ]
283 283 $ hg -R http-clone verify --large --lfc
284 284 checking changesets
285 285 checking manifests
286 286 crosschecking files in changesets and manifests
287 287 checking files
288 288 1 files, 1 changesets, 1 total revisions
289 289 searching 1 changesets for largefiles
290 290 verified contents of 1 revisions of 1 largefiles
291 291 $ hg -R http-clone up -Cqr null
292 292
293 293 largefiles pulled on update - no server side problems:
294 294 $ mv 02a439e5c31c526465ab1a0ca1f431f76b827b90 empty/.hg/largefiles/
295 295 $ hg -R http-clone --debug up --config largefiles.usercache=http-clone-usercache --config progress.debug=true
296 296 resolving manifests
297 297 branchmerge: False, force: False, partial: False
298 298 ancestor: 000000000000, local: 000000000000+, remote: cf03e5bb9936
299 299 .hglf/f1: remote created -> g
300 300 getting .hglf/f1
301 301 updating: .hglf/f1 1/1 files (100.00%)
302 302 getting changed largefiles
303 303 using http://localhost:$HGPORT2/
304 304 sending capabilities command
305 305 sending batch command
306 306 getting largefiles: 0/1 files (0.00%)
307 307 getting f1:02a439e5c31c526465ab1a0ca1f431f76b827b90
308 308 sending getlfile command
309 309 found 02a439e5c31c526465ab1a0ca1f431f76b827b90 in store
310 310 1 largefiles updated, 0 removed
311 311 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
312 312
313 313 $ ls http-clone-usercache/*
314 314 http-clone-usercache/02a439e5c31c526465ab1a0ca1f431f76b827b90
315 315
316 316 $ rm -rf empty http-clone*
317 317
318 318 used all HGPORTs, kill all daemons
319 319 $ killdaemons.py
320 320
321 321 largefiles should batch verify remote calls
322 322
323 323 $ hg init batchverifymain
324 324 $ cd batchverifymain
325 325 $ echo "aaa" >> a
326 326 $ hg add --large a
327 327 $ hg commit -m "a"
328 328 Invoking status precommit hook
329 329 A a
330 330 $ echo "bbb" >> b
331 331 $ hg add --large b
332 332 $ hg commit -m "b"
333 333 Invoking status precommit hook
334 334 A b
335 335 $ cd ..
336 336 $ hg serve -R batchverifymain -d -p $HGPORT --pid-file hg.pid \
337 337 > -A access.log
338 338 $ cat hg.pid >> $DAEMON_PIDS
339 339 $ hg clone --noupdate http://localhost:$HGPORT batchverifyclone
340 340 requesting all changes
341 341 adding changesets
342 342 adding manifests
343 343 adding file changes
344 344 added 2 changesets with 2 changes to 2 files
345 345 new changesets 567253b0f523:04d19c27a332
346 346 $ hg -R batchverifyclone verify --large --lfa
347 347 checking changesets
348 348 checking manifests
349 349 crosschecking files in changesets and manifests
350 350 checking files
351 351 2 files, 2 changesets, 2 total revisions
352 352 searching 2 changesets for largefiles
353 353 verified existence of 2 revisions of 2 largefiles
354 354 $ tail -1 access.log
355 $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=statlfile+sha%3D972a1a11f19934401291cc99117ec614933374ce%3Bstatlfile+sha%3Dc801c9cfe94400963fcb683246217d5db77f9a9a x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
355 $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=statlfile+sha%3D972a1a11f19934401291cc99117ec614933374ce%3Bstatlfile+sha%3Dc801c9cfe94400963fcb683246217d5db77f9a9a x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
356 356 $ hg -R batchverifyclone update
357 357 getting changed largefiles
358 358 2 largefiles updated, 0 removed
359 359 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
360 360
361 361 Clear log file before next test
362 362
363 363 $ printf "" > access.log
364 364
365 365 Verify should check file on remote server only when file is not
366 366 available locally.
367 367
368 368 $ echo "ccc" >> batchverifymain/c
369 369 $ hg -R batchverifymain status
370 370 ? c
371 371 $ hg -R batchverifymain add --large batchverifymain/c
372 372 $ hg -R batchverifymain commit -m "c"
373 373 Invoking status precommit hook
374 374 A c
375 375 $ hg -R batchverifyclone pull
376 376 pulling from http://localhost:$HGPORT/
377 377 searching for changes
378 378 adding changesets
379 379 adding manifests
380 380 adding file changes
381 381 added 1 changesets with 1 changes to 1 files
382 382 new changesets 6bba8cb6935d
383 383 (run 'hg update' to get a working copy)
384 384 $ hg -R batchverifyclone verify --lfa
385 385 checking changesets
386 386 checking manifests
387 387 crosschecking files in changesets and manifests
388 388 checking files
389 389 3 files, 3 changesets, 3 total revisions
390 390 searching 3 changesets for largefiles
391 391 verified existence of 3 revisions of 3 largefiles
392 392 $ tail -1 access.log
393 $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=statlfile+sha%3Dc8559c3c9cfb42131794b7d8009230403b9b454c x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
393 $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=statlfile+sha%3Dc8559c3c9cfb42131794b7d8009230403b9b454c x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
394 394
395 395 $ killdaemons.py
396 396
397 397 largefiles should not ask for password again after successful authorization
398 398
399 399 $ hg init credentialmain
400 400 $ cd credentialmain
401 401 $ echo "aaa" >> a
402 402 $ hg add --large a
403 403 $ hg commit -m "a"
404 404 Invoking status precommit hook
405 405 A a
406 406
407 407 Before running server clear the user cache to force clone to download
408 408 a large file from the server rather than to get it from the cache
409 409
410 410 $ rm "${USERCACHE}"/*
411 411
412 412 $ cd ..
413 413 $ cat << EOT > userpass.py
414 414 > import base64
415 415 > from mercurial.hgweb import common
416 416 > def perform_authentication(hgweb, req, op):
417 417 > auth = req.env.get('HTTP_AUTHORIZATION')
418 418 > if not auth:
419 419 > raise common.ErrorResponse(common.HTTP_UNAUTHORIZED, 'who',
420 420 > [('WWW-Authenticate', 'Basic Realm="mercurial"')])
421 421 > if base64.b64decode(auth.split()[1]).split(':', 1) != ['user', 'pass']:
422 422 > raise common.ErrorResponse(common.HTTP_FORBIDDEN, 'no')
423 423 > def extsetup():
424 424 > common.permhooks.insert(0, perform_authentication)
425 425 > EOT
426 426 $ hg serve --config extensions.x=userpass.py -R credentialmain \
427 427 > -d -p $HGPORT --pid-file hg.pid -A access.log
428 428 $ cat hg.pid >> $DAEMON_PIDS
429 429 $ cat << EOF > get_pass.py
430 430 > import getpass
431 431 > def newgetpass(arg):
432 432 > return "pass"
433 433 > getpass.getpass = newgetpass
434 434 > EOF
435 435 $ hg clone --config ui.interactive=true --config extensions.getpass=get_pass.py \
436 436 > http://user@localhost:$HGPORT credentialclone
437 437 requesting all changes
438 438 http authorization required for http://localhost:$HGPORT/
439 439 realm: mercurial
440 440 user: user
441 441 password: adding changesets
442 442 adding manifests
443 443 adding file changes
444 444 added 1 changesets with 1 changes to 1 files
445 445 new changesets 567253b0f523
446 446 updating to branch default
447 447 getting changed largefiles
448 448 1 largefiles updated, 0 removed
449 449 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
450 450
451 451 $ killdaemons.py
452 452 $ rm hg.pid access.log
453 453
454 454 #endif
@@ -1,162 +1,162
1 1 #require killdaemons
2 2
3 3 Test wire protocol argument passing
4 4
5 5 Setup repo:
6 6
7 7 $ hg init repo
8 8
9 9 Local:
10 10
11 11 $ hg debugwireargs repo eins zwei --three drei --four vier
12 12 eins zwei drei vier None
13 13 $ hg debugwireargs repo eins zwei --four vier
14 14 eins zwei None vier None
15 15 $ hg debugwireargs repo eins zwei
16 16 eins zwei None None None
17 17 $ hg debugwireargs repo eins zwei --five fuenf
18 18 eins zwei None None fuenf
19 19
20 20 HTTP:
21 21
22 22 $ hg serve -R repo -p $HGPORT -d --pid-file=hg1.pid \
23 23 > -E error.log -A access.log \
24 24 > --config experimental.httppostargs=yes
25 25 $ cat hg1.pid >> $DAEMON_PIDS
26 26
27 27 $ hg debugwireargs http://localhost:$HGPORT/ un deux trois quatre
28 28 un deux trois quatre None
29 29 $ hg debugwireargs http://localhost:$HGPORT/ \ un deux trois\ qu\ \ atre
30 30 un deux trois qu atre None
31 31 $ hg debugwireargs http://localhost:$HGPORT/ eins zwei --four vier
32 32 eins zwei None vier None
33 33 $ hg debugwireargs http://localhost:$HGPORT/ eins zwei
34 34 eins zwei None None None
35 35 $ hg debugwireargs http://localhost:$HGPORT/ eins zwei --five fuenf
36 36 eins zwei None None None
37 37 $ hg debugwireargs http://localhost:$HGPORT/ un deux trois onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
38 38 un deux trois onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx None
39 39 $ cat error.log
40 40 $ cat access.log
41 41 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
42 42 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:39* (glob)
43 43 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:39* (glob)
44 44 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
45 45 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:43* (glob)
46 46 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:43* (glob)
47 47 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
48 48 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:27* (glob)
49 49 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:27* (glob)
50 50 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
51 51 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:17* (glob)
52 52 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:17* (glob)
53 53 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
54 54 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:17* (glob)
55 55 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:17* (glob)
56 56 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
57 57 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:1033* (glob)
58 58 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:1033* (glob)
59 59
60 60 HTTP without args-in-POST:
61 61 $ hg serve -R repo -p $HGPORT1 -d --pid-file=hg1.pid -E error.log -A access.log
62 62 $ cat hg1.pid >> $DAEMON_PIDS
63 63
64 64 $ hg debugwireargs http://localhost:$HGPORT1/ un deux trois quatre
65 65 un deux trois quatre None
66 66 $ hg debugwireargs http://localhost:$HGPORT1/ \ un deux trois\ qu\ \ atre
67 67 un deux trois qu atre None
68 68 $ hg debugwireargs http://localhost:$HGPORT1/ eins zwei --four vier
69 69 eins zwei None vier None
70 70 $ hg debugwireargs http://localhost:$HGPORT1/ eins zwei
71 71 eins zwei None None None
72 72 $ hg debugwireargs http://localhost:$HGPORT1/ eins zwei --five fuenf
73 73 eins zwei None None None
74 74 $ hg debugwireargs http://localhost:$HGPORT1/ un deux trois onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
75 75 un deux trois onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx None
76 76 $ cat error.log
77 77 $ cat access.log
78 78 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
79 79 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:39* (glob)
80 80 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:39* (glob)
81 81 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
82 82 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:43* (glob)
83 83 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:43* (glob)
84 84 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
85 85 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:27* (glob)
86 86 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:27* (glob)
87 87 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
88 88 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:17* (glob)
89 89 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:17* (glob)
90 90 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
91 91 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:17* (glob)
92 92 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:17* (glob)
93 93 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
94 94 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:1033* (glob)
95 95 * - - [*] "POST /?cmd=debugwireargs HTTP/1.1" 200 - x-hgargs-post:1033* (glob)
96 96 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
97 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=quatre&one=un&three=trois&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
98 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=quatre&one=un&three=trois&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
97 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=quatre&one=un&three=trois&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
98 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=quatre&one=un&three=trois&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
99 99 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
100 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=qu++atre&one=+un&three=trois+&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
101 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=qu++atre&one=+un&three=trois+&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
100 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=qu++atre&one=+un&three=trois+&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
101 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=qu++atre&one=+un&three=trois+&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
102 102 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
103 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=vier&one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
104 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=vier&one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
103 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=vier&one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
104 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=vier&one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
105 105 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
106 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
107 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
106 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
107 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
108 108 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
109 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
110 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
109 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
110 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
111 111 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
112 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&one x-hgarg-2:=un&three=trois&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
113 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&one x-hgarg-2:=un&three=trois&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
112 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&one x-hgarg-2:=un&three=trois&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
113 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&one x-hgarg-2:=un&three=trois&two=deux x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
114 114
115 115 HTTP without the httpheader capability:
116 116
117 117 $ HGRCPATH="`pwd`/repo/.hgrc"
118 118 $ export HGRCPATH
119 119 $ CAP=httpheader
120 120 $ . "$TESTDIR/notcapable"
121 121
122 122 $ hg serve -R repo -p $HGPORT2 -d --pid-file=hg2.pid -E error2.log -A access2.log
123 123 $ cat hg2.pid >> $DAEMON_PIDS
124 124
125 125 $ hg debugwireargs http://localhost:$HGPORT2/ un deux trois quatre
126 126 un deux trois quatre None
127 127 $ hg debugwireargs http://localhost:$HGPORT2/ eins zwei --four vier
128 128 eins zwei None vier None
129 129 $ hg debugwireargs http://localhost:$HGPORT2/ eins zwei
130 130 eins zwei None None None
131 131 $ hg debugwireargs http://localhost:$HGPORT2/ eins zwei --five fuenf
132 132 eins zwei None None None
133 133 $ cat error2.log
134 134 $ cat access2.log
135 135 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
136 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&four=quatre&one=un&three=trois&two=deux HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
137 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&four=quatre&one=un&three=trois&two=deux HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
136 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&four=quatre&one=un&three=trois&two=deux HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
137 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&four=quatre&one=un&three=trois&two=deux HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
138 138 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
139 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&four=vier&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
140 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&four=vier&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
139 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&four=vier&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
140 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&four=vier&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
141 141 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
142 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
143 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
142 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
143 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
144 144 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
145 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
146 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$
145 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
146 $LOCALIP - - [$LOGDATE$] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ (glob)
147 147
148 148 SSH (try to exercise the ssh functionality with a dummy script):
149 149
150 150 $ hg debugwireargs --ssh "\"$PYTHON\" $TESTDIR/dummyssh" ssh://user@dummy/repo uno due tre quattro
151 151 uno due tre quattro None
152 152 $ hg debugwireargs --ssh "\"$PYTHON\" $TESTDIR/dummyssh" ssh://user@dummy/repo eins zwei --four vier
153 153 eins zwei None vier None
154 154 $ hg debugwireargs --ssh "\"$PYTHON\" $TESTDIR/dummyssh" ssh://user@dummy/repo eins zwei
155 155 eins zwei None None None
156 156 $ hg debugwireargs --ssh "\"$PYTHON\" $TESTDIR/dummyssh" ssh://user@dummy/repo eins zwei --five fuenf
157 157 eins zwei None None None
158 158
159 159 Explicitly kill daemons to let the test exit on Windows
160 160
161 161 $ killdaemons.py
162 162
General Comments 0
You need to be logged in to leave comments. Login now