Mercurial > hg
comparison tests/test-bundle2-format.t @ 24686:e0e28e910fa3
bundle2: rename format, parts and config to final names
It is finally time to freeze the bundle2 format! To do so we:
- rename HG2Y to HG20,
- drop "b2x:" prefix from all part names,
- rename capability to "bundle2-exp" to "bundle2"
- rename the hook flag from 'bundle2-exp' to 'bundle2'
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Thu, 09 Apr 2015 16:25:48 -0400 |
parents | 60fecc5b14a4 |
children | bd625cd4e5e7 |
comparison
equal
deleted
inserted
replaced
24685:b3d78d82d84c | 24686:e0e28e910fa3 |
---|---|
90 > except ValueError, exc: | 90 > except ValueError, exc: |
91 > raise util.Abort('%s' % exc) | 91 > raise util.Abort('%s' % exc) |
92 > | 92 > |
93 > if opts['reply']: | 93 > if opts['reply']: |
94 > capsstring = 'ping-pong\nelephants=babar,celeste\ncity%3D%21=celeste%2Cville' | 94 > capsstring = 'ping-pong\nelephants=babar,celeste\ncity%3D%21=celeste%2Cville' |
95 > bundler.newpart('b2x:replycaps', data=capsstring) | 95 > bundler.newpart('replycaps', data=capsstring) |
96 > | 96 > |
97 > if opts['pushrace']: | 97 > if opts['pushrace']: |
98 > # also serve to test the assignement of data outside of init | 98 > # also serve to test the assignement of data outside of init |
99 > part = bundler.newpart('b2x:check:heads') | 99 > part = bundler.newpart('check:heads') |
100 > part.data = '01234567890123456789' | 100 > part.data = '01234567890123456789' |
101 > | 101 > |
102 > revs = opts['rev'] | 102 > revs = opts['rev'] |
103 > if 'rev' in opts: | 103 > if 'rev' in opts: |
104 > revs = scmutil.revrange(repo, opts['rev']) | 104 > revs = scmutil.revrange(repo, opts['rev']) |
107 > bundled = repo.revs('%ld::%ld', revs, revs) | 107 > bundled = repo.revs('%ld::%ld', revs, revs) |
108 > headmissing = [c.node() for c in repo.set('heads(%ld)', revs)] | 108 > headmissing = [c.node() for c in repo.set('heads(%ld)', revs)] |
109 > headcommon = [c.node() for c in repo.set('parents(%ld) - %ld', revs, revs)] | 109 > headcommon = [c.node() for c in repo.set('parents(%ld) - %ld', revs, revs)] |
110 > outgoing = discovery.outgoing(repo.changelog, headcommon, headmissing) | 110 > outgoing = discovery.outgoing(repo.changelog, headcommon, headmissing) |
111 > cg = changegroup.getlocalchangegroup(repo, 'test:bundle2', outgoing, None) | 111 > cg = changegroup.getlocalchangegroup(repo, 'test:bundle2', outgoing, None) |
112 > bundler.newpart('b2x:changegroup', data=cg.getchunks(), | 112 > bundler.newpart('changegroup', data=cg.getchunks(), |
113 > mandatory=False) | 113 > mandatory=False) |
114 > | 114 > |
115 > if opts['parts']: | 115 > if opts['parts']: |
116 > bundler.newpart('test:empty', mandatory=False) | 116 > bundler.newpart('test:empty', mandatory=False) |
117 > # add a second one to make sure we handle multiple parts | 117 > # add a second one to make sure we handle multiple parts |
134 > bundler.newpart('test:ping', mandatory=False) | 134 > bundler.newpart('test:ping', mandatory=False) |
135 > if opts['genraise']: | 135 > if opts['genraise']: |
136 > def genraise(): | 136 > def genraise(): |
137 > yield 'first line\n' | 137 > yield 'first line\n' |
138 > raise RuntimeError('Someone set up us the bomb!') | 138 > raise RuntimeError('Someone set up us the bomb!') |
139 > bundler.newpart('b2x:output', data=genraise(), mandatory=False) | 139 > bundler.newpart('output', data=genraise(), mandatory=False) |
140 > | 140 > |
141 > if path is None: | 141 > if path is None: |
142 > file = sys.stdout | 142 > file = sys.stdout |
143 > else: | 143 > else: |
144 > file = open(path, 'wb') | 144 > file = open(path, 'wb') |
235 - no parts | 235 - no parts |
236 | 236 |
237 Test bundling | 237 Test bundling |
238 | 238 |
239 $ hg bundle2 | 239 $ hg bundle2 |
240 HG2Y\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) | 240 HG20\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) |
241 | 241 |
242 Test unbundling | 242 Test unbundling |
243 | 243 |
244 $ hg bundle2 | hg statbundle2 | 244 $ hg bundle2 | hg statbundle2 |
245 options count: 0 | 245 options count: 0 |
265 Simplest possible parameters form | 265 Simplest possible parameters form |
266 | 266 |
267 Test generation simple option | 267 Test generation simple option |
268 | 268 |
269 $ hg bundle2 --param 'caution' | 269 $ hg bundle2 --param 'caution' |
270 HG2Y\x00\x00\x00\x07caution\x00\x00\x00\x00 (no-eol) (esc) | 270 HG20\x00\x00\x00\x07caution\x00\x00\x00\x00 (no-eol) (esc) |
271 | 271 |
272 Test unbundling | 272 Test unbundling |
273 | 273 |
274 $ hg bundle2 --param 'caution' | hg statbundle2 | 274 $ hg bundle2 --param 'caution' | hg statbundle2 |
275 options count: 1 | 275 options count: 1 |
277 parts count: 0 | 277 parts count: 0 |
278 | 278 |
279 Test generation multiple option | 279 Test generation multiple option |
280 | 280 |
281 $ hg bundle2 --param 'caution' --param 'meal' | 281 $ hg bundle2 --param 'caution' --param 'meal' |
282 HG2Y\x00\x00\x00\x0ccaution meal\x00\x00\x00\x00 (no-eol) (esc) | 282 HG20\x00\x00\x00\x0ccaution meal\x00\x00\x00\x00 (no-eol) (esc) |
283 | 283 |
284 Test unbundling | 284 Test unbundling |
285 | 285 |
286 $ hg bundle2 --param 'caution' --param 'meal' | hg statbundle2 | 286 $ hg bundle2 --param 'caution' --param 'meal' | hg statbundle2 |
287 options count: 2 | 287 options count: 2 |
293 ------------------------------- | 293 ------------------------------- |
294 | 294 |
295 Test generation | 295 Test generation |
296 | 296 |
297 $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' | 297 $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' |
298 HG2Y\x00\x00\x00\x1ccaution meal=vegan elephants\x00\x00\x00\x00 (no-eol) (esc) | 298 HG20\x00\x00\x00\x1ccaution meal=vegan elephants\x00\x00\x00\x00 (no-eol) (esc) |
299 | 299 |
300 Test unbundling | 300 Test unbundling |
301 | 301 |
302 $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' | hg statbundle2 | 302 $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' | hg statbundle2 |
303 options count: 3 | 303 options count: 3 |
311 --------------------------------------------------- | 311 --------------------------------------------------- |
312 | 312 |
313 Test generation | 313 Test generation |
314 | 314 |
315 $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple | 315 $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple |
316 HG2Y\x00\x00\x00)e%7C%21%207/=babar%25%23%3D%3Dtutu simple\x00\x00\x00\x00 (no-eol) (esc) | 316 HG20\x00\x00\x00)e%7C%21%207/=babar%25%23%3D%3Dtutu simple\x00\x00\x00\x00 (no-eol) (esc) |
317 | 317 |
318 Test unbundling | 318 Test unbundling |
319 | 319 |
320 $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple | hg statbundle2 | 320 $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple | hg statbundle2 |
321 options count: 2 | 321 options count: 2 |
335 --------------------------------------------------- | 335 --------------------------------------------------- |
336 | 336 |
337 bundling debug | 337 bundling debug |
338 | 338 |
339 $ hg bundle2 --debug --param 'e|! 7/=babar%#==tutu' --param simple ../out.hg2 | 339 $ hg bundle2 --debug --param 'e|! 7/=babar%#==tutu' --param simple ../out.hg2 |
340 start emission of HG2Y stream | 340 start emission of HG20 stream |
341 bundle parameter: e%7C%21%207/=babar%25%23%3D%3Dtutu simple | 341 bundle parameter: e%7C%21%207/=babar%25%23%3D%3Dtutu simple |
342 start of parts | 342 start of parts |
343 end of bundle | 343 end of bundle |
344 | 344 |
345 file content is ok | 345 file content is ok |
346 | 346 |
347 $ cat ../out.hg2 | 347 $ cat ../out.hg2 |
348 HG2Y\x00\x00\x00)e%7C%21%207/=babar%25%23%3D%3Dtutu simple\x00\x00\x00\x00 (no-eol) (esc) | 348 HG20\x00\x00\x00)e%7C%21%207/=babar%25%23%3D%3Dtutu simple\x00\x00\x00\x00 (no-eol) (esc) |
349 | 349 |
350 unbundling debug | 350 unbundling debug |
351 | 351 |
352 $ hg statbundle2 --debug < ../out.hg2 | 352 $ hg statbundle2 --debug < ../out.hg2 |
353 start processing of HG2Y stream | 353 start processing of HG20 stream |
354 reading bundle2 stream parameters | 354 reading bundle2 stream parameters |
355 ignoring unknown parameter 'e|! 7/' | 355 ignoring unknown parameter 'e|! 7/' |
356 ignoring unknown parameter 'simple' | 356 ignoring unknown parameter 'simple' |
357 options count: 2 | 357 options count: 2 |
358 - e|! 7/ | 358 - e|! 7/ |
382 | 382 |
383 Test part | 383 Test part |
384 ================= | 384 ================= |
385 | 385 |
386 $ hg bundle2 --parts ../parts.hg2 --debug | 386 $ hg bundle2 --parts ../parts.hg2 --debug |
387 start emission of HG2Y stream | 387 start emission of HG20 stream |
388 bundle parameter: | 388 bundle parameter: |
389 start of parts | 389 start of parts |
390 bundle part: "test:empty" | 390 bundle part: "test:empty" |
391 bundle part: "test:empty" | 391 bundle part: "test:empty" |
392 bundle part: "test:song" | 392 bundle part: "test:song" |
395 bundle part: "test:song" | 395 bundle part: "test:song" |
396 bundle part: "test:ping" | 396 bundle part: "test:ping" |
397 end of bundle | 397 end of bundle |
398 | 398 |
399 $ cat ../parts.hg2 | 399 $ cat ../parts.hg2 |
400 HG2Y\x00\x00\x00\x00\x00\x00\x00\x11 (esc) | 400 HG20\x00\x00\x00\x00\x00\x00\x00\x11 (esc) |
401 test:empty\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11 (esc) | 401 test:empty\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11 (esc) |
402 test:empty\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10 test:song\x00\x00\x00\x02\x00\x00\x00\x00\x00\xb2Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko (esc) | 402 test:empty\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10 test:song\x00\x00\x00\x02\x00\x00\x00\x00\x00\xb2Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko (esc) |
403 Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko | 403 Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko |
404 Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.\x00\x00\x00\x00\x00\x00\x00\x16\x0ftest:debugreply\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00+ test:math\x00\x00\x00\x04\x02\x01\x02\x04\x01\x04\x07\x03pi3.14e2.72cookingraw\x00\x00\x00\x0242\x00\x00\x00\x00\x00\x00\x00\x1d test:song\x00\x00\x00\x05\x01\x00\x0b\x00randomparam\x00\x00\x00\x00\x00\x00\x00\x10 test:ping\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) | 404 Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.\x00\x00\x00\x00\x00\x00\x00\x16\x0ftest:debugreply\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00+ test:math\x00\x00\x00\x04\x02\x01\x02\x04\x01\x04\x07\x03pi3.14e2.72cookingraw\x00\x00\x00\x0242\x00\x00\x00\x00\x00\x00\x00\x1d test:song\x00\x00\x00\x05\x01\x00\x0b\x00randomparam\x00\x00\x00\x00\x00\x00\x00\x10 test:ping\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) |
405 | 405 |
435 advisory: 0 | 435 advisory: 0 |
436 payload: 0 bytes | 436 payload: 0 bytes |
437 parts count: 7 | 437 parts count: 7 |
438 | 438 |
439 $ hg statbundle2 --debug < ../parts.hg2 | 439 $ hg statbundle2 --debug < ../parts.hg2 |
440 start processing of HG2Y stream | 440 start processing of HG20 stream |
441 reading bundle2 stream parameters | 441 reading bundle2 stream parameters |
442 options count: 0 | 442 options count: 0 |
443 start extraction of bundle2 parts | 443 start extraction of bundle2 parts |
444 part header size: 17 | 444 part header size: 17 |
445 part type: "test:empty" | 445 part type: "test:empty" |
514 ======================================= | 514 ======================================= |
515 | 515 |
516 Process the bundle | 516 Process the bundle |
517 | 517 |
518 $ hg unbundle2 --debug < ../parts.hg2 | 518 $ hg unbundle2 --debug < ../parts.hg2 |
519 start processing of HG2Y stream | 519 start processing of HG20 stream |
520 reading bundle2 stream parameters | 520 reading bundle2 stream parameters |
521 start extraction of bundle2 parts | 521 start extraction of bundle2 parts |
522 part header size: 17 | 522 part header size: 17 |
523 part type: "test:empty" | 523 part type: "test:empty" |
524 part id: "0" | 524 part id: "0" |
608 3 total verses sung | 608 3 total verses sung |
609 | 609 |
610 The reply is a bundle | 610 The reply is a bundle |
611 | 611 |
612 $ cat ../reply.hg2 | 612 $ cat ../reply.hg2 |
613 HG2Y\x00\x00\x00\x00\x00\x00\x00\x1f (esc) | 613 HG20\x00\x00\x00\x00\x00\x00\x00\x1b\x06output\x00\x00\x00\x00\x00\x01\x0b\x01in-reply-to3\x00\x00\x00\xd9The choir starts singing: (esc) |
614 b2x:output\x00\x00\x00\x00\x00\x01\x0b\x01in-reply-to3\x00\x00\x00\xd9The choir starts singing: (esc) | |
615 Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko | 614 Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko |
616 Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko | 615 Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko |
617 Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko. | 616 Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko. |
618 \x00\x00\x00\x00\x00\x00\x00\x1f (esc) | 617 \x00\x00\x00\x00\x00\x00\x00\x1b\x06output\x00\x00\x00\x01\x00\x01\x0b\x01in-reply-to4\x00\x00\x00\xc9debugreply: capabilities: (esc) |
619 b2x:output\x00\x00\x00\x01\x00\x01\x0b\x01in-reply-to4\x00\x00\x00\xc9debugreply: capabilities: (esc) | |
620 debugreply: 'city=!' | 618 debugreply: 'city=!' |
621 debugreply: 'celeste,ville' | 619 debugreply: 'celeste,ville' |
622 debugreply: 'elephants' | 620 debugreply: 'elephants' |
623 debugreply: 'babar' | 621 debugreply: 'babar' |
624 debugreply: 'celeste' | 622 debugreply: 'celeste' |
625 debugreply: 'ping-pong' | 623 debugreply: 'ping-pong' |
626 \x00\x00\x00\x00\x00\x00\x00\x1e test:pong\x00\x00\x00\x02\x01\x00\x0b\x01in-reply-to7\x00\x00\x00\x00\x00\x00\x00\x1f (esc) | 624 \x00\x00\x00\x00\x00\x00\x00\x1e test:pong\x00\x00\x00\x02\x01\x00\x0b\x01in-reply-to7\x00\x00\x00\x00\x00\x00\x00\x1b\x06output\x00\x00\x00\x03\x00\x01\x0b\x01in-reply-to7\x00\x00\x00=received ping request (id 7) (esc) |
627 b2x:output\x00\x00\x00\x03\x00\x01\x0b\x01in-reply-to7\x00\x00\x00=received ping request (id 7) (esc) | |
628 replying to ping request (id 7) | 625 replying to ping request (id 7) |
629 \x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) | 626 \x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) |
630 | 627 |
631 The reply is valid | 628 The reply is valid |
632 | 629 |
633 $ hg statbundle2 < ../reply.hg2 | 630 $ hg statbundle2 < ../reply.hg2 |
634 options count: 0 | 631 options count: 0 |
635 :b2x:output: | 632 :output: |
636 mandatory: 0 | 633 mandatory: 0 |
637 advisory: 1 | 634 advisory: 1 |
638 payload: 217 bytes | 635 payload: 217 bytes |
639 :b2x:output: | 636 :output: |
640 mandatory: 0 | 637 mandatory: 0 |
641 advisory: 1 | 638 advisory: 1 |
642 payload: 201 bytes | 639 payload: 201 bytes |
643 :test:pong: | 640 :test:pong: |
644 mandatory: 1 | 641 mandatory: 1 |
645 advisory: 0 | 642 advisory: 0 |
646 payload: 0 bytes | 643 payload: 0 bytes |
647 :b2x:output: | 644 :output: |
648 mandatory: 0 | 645 mandatory: 0 |
649 advisory: 1 | 646 advisory: 1 |
650 payload: 61 bytes | 647 payload: 61 bytes |
651 parts count: 4 | 648 parts count: 4 |
652 | 649 |
712 list of changesets: | 709 list of changesets: |
713 32af7686d403cf45b5d95f2d70cebea587ac806a | 710 32af7686d403cf45b5d95f2d70cebea587ac806a |
714 9520eea781bcca16c1e15acc0ba14335a0e8e5ba | 711 9520eea781bcca16c1e15acc0ba14335a0e8e5ba |
715 eea13746799a9e0bfd88f29d3c2e9dc9389f524f | 712 eea13746799a9e0bfd88f29d3c2e9dc9389f524f |
716 02de42196ebee42ef284b6780a87cdc96e8eaab6 | 713 02de42196ebee42ef284b6780a87cdc96e8eaab6 |
717 start emission of HG2Y stream | 714 start emission of HG20 stream |
718 bundle parameter: | 715 bundle parameter: |
719 start of parts | 716 start of parts |
720 bundle part: "b2x:changegroup" | 717 bundle part: "changegroup" |
721 bundling: 1/4 changesets (25.00%) | 718 bundling: 1/4 changesets (25.00%) |
722 bundling: 2/4 changesets (50.00%) | 719 bundling: 2/4 changesets (50.00%) |
723 bundling: 3/4 changesets (75.00%) | 720 bundling: 3/4 changesets (75.00%) |
724 bundling: 4/4 changesets (100.00%) | 721 bundling: 4/4 changesets (100.00%) |
725 bundling: 1/4 manifests (25.00%) | 722 bundling: 1/4 manifests (25.00%) |
730 bundling: E 2/3 files (66.67%) | 727 bundling: E 2/3 files (66.67%) |
731 bundling: H 3/3 files (100.00%) | 728 bundling: H 3/3 files (100.00%) |
732 end of bundle | 729 end of bundle |
733 | 730 |
734 $ cat ../rev.hg2 | 731 $ cat ../rev.hg2 |
735 HG2Y\x00\x00\x00\x00\x00\x00\x00\x16\x0fb2x:changegroup\x00\x00\x00\x00\x00\x00\x00\x00\x06\x13\x00\x00\x00\xa42\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j_\xdd\xd9\x89W\xc8\xa5JMCm\xfe\x1d\xa9\xd8\x7f!\xa1\xb9{\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)6e1f4c47ecb533ffd0c8e52cdc88afb6cd39e20c (esc) | 732 HG20\x00\x00\x00\x00\x00\x00\x00\x12\x0bchangegroup\x00\x00\x00\x00\x00\x00\x00\x00\x06\x13\x00\x00\x00\xa42\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j_\xdd\xd9\x89W\xc8\xa5JMCm\xfe\x1d\xa9\xd8\x7f!\xa1\xb9{\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)6e1f4c47ecb533ffd0c8e52cdc88afb6cd39e20c (esc) |
736 \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02D (esc) | 733 \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02D (esc) |
737 \x00\x00\x00i\x00\x00\x00j\x00\x00\x00\x01D\x00\x00\x00\xa4\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\xcd\x01\x0b\x8c\xd9\x98\xf3\x98\x1aZ\x81\x15\xf9O\x8d\xa4\xabP`\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)4dece9c826f69490507b98c6383a3009b295837d (esc) | 734 \x00\x00\x00i\x00\x00\x00j\x00\x00\x00\x01D\x00\x00\x00\xa4\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\xcd\x01\x0b\x8c\xd9\x98\xf3\x98\x1aZ\x81\x15\xf9O\x8d\xa4\xabP`\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)4dece9c826f69490507b98c6383a3009b295837d (esc) |
738 \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02E (esc) | 735 \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02E (esc) |
739 \x00\x00\x00i\x00\x00\x00j\x00\x00\x00\x01E\x00\x00\x00\xa2\xee\xa17Fy\x9a\x9e\x0b\xfd\x88\xf2\x9d<.\x9d\xc98\x9fRO$\xb68|\x8c\x8c\xae7\x17\x88\x80\xf3\xfa\x95\xde\xd3\xcb\x1c\xf7\x85\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\xee\xa17Fy\x9a\x9e\x0b\xfd\x88\xf2\x9d<.\x9d\xc98\x9fRO\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)365b93d57fdf4814e2b5911d6bacff2b12014441 (esc) | 736 \x00\x00\x00i\x00\x00\x00j\x00\x00\x00\x01E\x00\x00\x00\xa2\xee\xa17Fy\x9a\x9e\x0b\xfd\x88\xf2\x9d<.\x9d\xc98\x9fRO$\xb68|\x8c\x8c\xae7\x17\x88\x80\xf3\xfa\x95\xde\xd3\xcb\x1c\xf7\x85\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\xee\xa17Fy\x9a\x9e\x0b\xfd\x88\xf2\x9d<.\x9d\xc98\x9fRO\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)365b93d57fdf4814e2b5911d6bacff2b12014441 (esc) |
740 \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x00\x00\x00\x00i\x00\x00\x00j\x00\x00\x00\x01G\x00\x00\x00\xa4\x02\xdeB\x19n\xbe\xe4.\xf2\x84\xb6x (esc) | 737 \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x00\x00\x00\x00i\x00\x00\x00j\x00\x00\x00\x01G\x00\x00\x00\xa4\x02\xdeB\x19n\xbe\xe4.\xf2\x84\xb6x (esc) |
755 \x87\xcd\xc9n\x8e\xaa\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02H (esc) | 752 \x87\xcd\xc9n\x8e\xaa\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02H (esc) |
756 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) | 753 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) |
757 | 754 |
758 $ hg debugbundle ../rev.hg2 | 755 $ hg debugbundle ../rev.hg2 |
759 Stream params: {} | 756 Stream params: {} |
760 b2x:changegroup -- '{}' | 757 changegroup -- '{}' |
761 32af7686d403cf45b5d95f2d70cebea587ac806a | 758 32af7686d403cf45b5d95f2d70cebea587ac806a |
762 9520eea781bcca16c1e15acc0ba14335a0e8e5ba | 759 9520eea781bcca16c1e15acc0ba14335a0e8e5ba |
763 eea13746799a9e0bfd88f29d3c2e9dc9389f524f | 760 eea13746799a9e0bfd88f29d3c2e9dc9389f524f |
764 02de42196ebee42ef284b6780a87cdc96e8eaab6 | 761 02de42196ebee42ef284b6780a87cdc96e8eaab6 |
765 $ hg unbundle ../rev.hg2 | 762 $ hg unbundle ../rev.hg2 |
774 $ hg unbundle2 ../rev-reply.hg2 < ../rev-rr.hg2 | 771 $ hg unbundle2 ../rev-reply.hg2 < ../rev-rr.hg2 |
775 0 unread bytes | 772 0 unread bytes |
776 addchangegroup return: 1 | 773 addchangegroup return: 1 |
777 | 774 |
778 $ cat ../rev-reply.hg2 | 775 $ cat ../rev-reply.hg2 |
779 HG2Y\x00\x00\x00\x00\x00\x00\x003\x15b2x:reply:changegroup\x00\x00\x00\x00\x00\x02\x0b\x01\x06\x01in-reply-to1return1\x00\x00\x00\x00\x00\x00\x00\x1f (esc) | 776 HG20\x00\x00\x00\x00\x00\x00\x00/\x11reply:changegroup\x00\x00\x00\x00\x00\x02\x0b\x01\x06\x01in-reply-to1return1\x00\x00\x00\x00\x00\x00\x00\x1b\x06output\x00\x00\x00\x01\x00\x01\x0b\x01in-reply-to1\x00\x00\x00dadding changesets (esc) |
780 b2x:output\x00\x00\x00\x01\x00\x01\x0b\x01in-reply-to1\x00\x00\x00dadding changesets (esc) | |
781 adding manifests | 777 adding manifests |
782 adding file changes | 778 adding file changes |
783 added 0 changesets with 0 changes to 3 files | 779 added 0 changesets with 0 changes to 3 files |
784 \x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) | 780 \x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) |
785 | 781 |
791 [255] | 787 [255] |
792 | 788 |
793 Should still be a valid bundle | 789 Should still be a valid bundle |
794 | 790 |
795 $ cat ../genfailed.hg2 | 791 $ cat ../genfailed.hg2 |
796 HG2Y\x00\x00\x00\x00\x00\x00\x00\x11 (esc) | 792 HG20\x00\x00\x00\x00\x00\x00\x00\r (no-eol) (esc) |
797 b2x:output\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00L\x0fb2x:error:abort\x00\x00\x00\x00\x01\x00\x07-messageunexpected error: Someone set up us the bomb!\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) | 793 \x06output\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00H\x0berror:abort\x00\x00\x00\x00\x01\x00\x07-messageunexpected error: Someone set up us the bomb!\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc) |
798 | 794 |
799 And its handling on the other size raise a clean exception | 795 And its handling on the other size raise a clean exception |
800 | 796 |
801 $ cat ../genfailed.hg2 | hg unbundle2 | 797 $ cat ../genfailed.hg2 | hg unbundle2 |
802 0 unread bytes | 798 0 unread bytes |