##// END OF EJS Templates
wireprotov2: send content encoded frames from server...
Gregory Szorc -
r40173:b5bf3dd6 default
parent child Browse files
Show More
@@ -368,17 +368,46 b' def createcommandframes(stream, requesti'
368 368 def createcommandresponseokframe(stream, requestid):
369 369 overall = b''.join(cborutil.streamencode({b'status': b'ok'}))
370 370
371 if stream.streamsettingssent:
372 overall = stream.encode(overall)
373 encoded = True
374
375 if not overall:
376 return None
377 else:
378 encoded = False
379
371 380 return stream.makeframe(requestid=requestid,
372 381 typeid=FRAME_TYPE_COMMAND_RESPONSE,
373 382 flags=FLAG_COMMAND_RESPONSE_CONTINUATION,
374 payload=overall)
383 payload=overall,
384 encoded=encoded)
375 385
376 def createcommandresponseeosframe(stream, requestid):
386 def createcommandresponseeosframes(stream, requestid,
387 maxframesize=DEFAULT_MAX_FRAME_SIZE):
377 388 """Create an empty payload frame representing command end-of-stream."""
378 return stream.makeframe(requestid=requestid,
379 typeid=FRAME_TYPE_COMMAND_RESPONSE,
380 flags=FLAG_COMMAND_RESPONSE_EOS,
381 payload=b'')
389 payload = stream.flush()
390
391 offset = 0
392 while True:
393 chunk = payload[offset:offset + maxframesize]
394 offset += len(chunk)
395
396 done = offset == len(payload)
397
398 if done:
399 flags = FLAG_COMMAND_RESPONSE_EOS
400 else:
401 flags = FLAG_COMMAND_RESPONSE_CONTINUATION
402
403 yield stream.makeframe(requestid=requestid,
404 typeid=FRAME_TYPE_COMMAND_RESPONSE,
405 flags=flags,
406 payload=chunk,
407 encoded=payload != b'')
408
409 if done:
410 break
382 411
383 412 def createalternatelocationresponseframe(stream, requestid, location):
384 413 data = {
@@ -395,10 +424,19 b' def createalternatelocationresponseframe'
395 424 if value is not None:
396 425 data[b'location'][pycompat.bytestr(a)] = value
397 426
427 payload = b''.join(cborutil.streamencode(data))
428
429 if stream.streamsettingssent:
430 payload = stream.encode(payload)
431 encoded = True
432 else:
433 encoded = False
434
398 435 return stream.makeframe(requestid=requestid,
399 436 typeid=FRAME_TYPE_COMMAND_RESPONSE,
400 437 flags=FLAG_COMMAND_RESPONSE_CONTINUATION,
401 payload=b''.join(cborutil.streamencode(data)))
438 payload=payload,
439 encoded=encoded)
402 440
403 441 def createcommanderrorresponse(stream, requestid, message, args=None):
404 442 # TODO should this be using a list of {'msg': ..., 'args': {}} so atom
@@ -519,6 +557,8 b' class bufferingcommandresponseemitter(ob'
519 557 yield frame
520 558 return
521 559
560 data = self._stream.encode(data)
561
522 562 # There is a ton of potential to do more complicated things here.
523 563 # Our immediate goal is to coalesce small chunks into big frames,
524 564 # not achieve the fewest number of frames possible. So we go with
@@ -548,7 +588,8 b' class bufferingcommandresponseemitter(ob'
548 588 self._requestid,
549 589 typeid=FRAME_TYPE_COMMAND_RESPONSE,
550 590 flags=FLAG_COMMAND_RESPONSE_CONTINUATION,
551 payload=chunk)
591 payload=chunk,
592 encoded=True)
552 593
553 594 if offset == len(data):
554 595 return
@@ -583,7 +624,8 b' class bufferingcommandresponseemitter(ob'
583 624 self._requestid,
584 625 typeid=FRAME_TYPE_COMMAND_RESPONSE,
585 626 flags=FLAG_COMMAND_RESPONSE_CONTINUATION,
586 payload=payload)
627 payload=payload,
628 encoded=True)
587 629
588 630 # TODO consider defining encoders/decoders using the util.compressionengine
589 631 # mechanism.
@@ -776,7 +818,9 b' class outputstream(stream):'
776 818
777 819 def __init__(self, streamid, active=False):
778 820 super(outputstream, self).__init__(streamid, active=active)
821 self.streamsettingssent = False
779 822 self._encoder = None
823 self._encodername = None
780 824
781 825 def setencoder(self, ui, name):
782 826 """Set the encoder for this stream.
@@ -787,6 +831,7 b' class outputstream(stream):'
787 831 raise error.Abort(_('unknown stream encoder: %s') % name)
788 832
789 833 self._encoder = STREAM_ENCODERS[name][0](ui)
834 self._encodername = name
790 835
791 836 def encode(self, data):
792 837 if not self._encoder:
@@ -806,6 +851,45 b' class outputstream(stream):'
806 851
807 852 self._encoder.finish()
808 853
854 def makeframe(self, requestid, typeid, flags, payload,
855 encoded=False):
856 """Create a frame to be sent out over this stream.
857
858 Only returns the frame instance. Does not actually send it.
859 """
860 streamflags = 0
861 if not self._active:
862 streamflags |= STREAM_FLAG_BEGIN_STREAM
863 self._active = True
864
865 if encoded:
866 if not self.streamsettingssent:
867 raise error.ProgrammingError(
868 b'attempting to send encoded frame without sending stream '
869 b'settings')
870
871 streamflags |= STREAM_FLAG_ENCODING_APPLIED
872
873 if (typeid == FRAME_TYPE_STREAM_SETTINGS
874 and flags & FLAG_STREAM_ENCODING_SETTINGS_EOS):
875 self.streamsettingssent = True
876
877 return makeframe(requestid, self.streamid, streamflags, typeid, flags,
878 payload)
879
880 def makestreamsettingsframe(self, requestid):
881 """Create a stream settings frame for this stream.
882
883 Returns frame data or None if no stream settings frame is needed or has
884 already been sent.
885 """
886 if not self._encoder or self.streamsettingssent:
887 return None
888
889 payload = b''.join(cborutil.streamencode(self._encodername))
890 return self.makeframe(requestid, FRAME_TYPE_STREAM_SETTINGS,
891 FLAG_STREAM_ENCODING_SETTINGS_EOS, payload)
892
809 893 def ensureserverstream(stream):
810 894 if stream.streamid % 2:
811 895 raise error.ProgrammingError('server should only write to even '
@@ -995,7 +1079,9 b' class serverreactor(object):'
995 1079 yield frame
996 1080
997 1081 if emitted:
998 yield createcommandresponseeosframe(stream, requestid)
1082 for frame in createcommandresponseeosframes(
1083 stream, requestid):
1084 yield frame
999 1085 break
1000 1086
1001 1087 except error.WireprotoCommandError as e:
@@ -1022,6 +1108,10 b' class serverreactor(object):'
1022 1108 'alternatelocationresponse seen after initial '
1023 1109 'output object')
1024 1110
1111 frame = stream.makestreamsettingsframe(requestid)
1112 if frame:
1113 yield frame
1114
1025 1115 yield createalternatelocationresponseframe(
1026 1116 stream, requestid, o)
1027 1117
@@ -1034,7 +1124,16 b' class serverreactor(object):'
1034 1124 'object follows alternatelocationresponse')
1035 1125
1036 1126 if not emitted:
1037 yield createcommandresponseokframe(stream, requestid)
1127 # Frame is optional.
1128 frame = stream.makestreamsettingsframe(requestid)
1129 if frame:
1130 yield frame
1131
1132 # May be None if empty frame (due to encoding).
1133 frame = createcommandresponseokframe(stream, requestid)
1134 if frame:
1135 yield frame
1136
1038 1137 emitted = True
1039 1138
1040 1139 # Objects emitted by command functions can be serializable
@@ -1121,13 +1220,25 b' class serverreactor(object):'
1121 1220 return self._handlesendframes(sendframes())
1122 1221
1123 1222 def makeoutputstream(self):
1124 """Create a stream to be used for sending data to the client."""
1223 """Create a stream to be used for sending data to the client.
1224
1225 If this is called before protocol settings frames are received, we
1226 don't know what stream encodings are supported by the client and
1227 we will default to identity.
1228 """
1125 1229 streamid = self._nextoutgoingstreamid
1126 1230 self._nextoutgoingstreamid += 2
1127 1231
1128 1232 s = outputstream(streamid)
1129 1233 self._outgoingstreams[streamid] = s
1130 1234
1235 # Always use the *server's* preferred encoder over the client's,
1236 # as servers have more to lose from sub-optimal encoders being used.
1237 for name in STREAM_ENCODERS_ORDER:
1238 if name in self._sendersettings['contentencodings']:
1239 s.setencoder(self._ui, name)
1240 break
1241
1131 1242 return s
1132 1243
1133 1244 def _makeerrorresult(self, msg):
@@ -194,7 +194,7 b' def _processhttpv2request(ui, repo, req,'
194 194 reactor = wireprotoframing.serverreactor(ui, deferoutput=True)
195 195 seencommand = False
196 196
197 outstream = reactor.makeoutputstream()
197 outstream = None
198 198
199 199 while True:
200 200 frame = wireprotoframing.readframe(req.bodyfh)
@@ -207,6 +207,11 b' def _processhttpv2request(ui, repo, req,'
207 207 # Need more data before we can do anything.
208 208 continue
209 209 elif action == 'runcommand':
210 # Defer creating output stream because we need to wait for
211 # protocol settings frames so proper encoding can be applied.
212 if not outstream:
213 outstream = reactor.makeoutputstream()
214
210 215 sentoutput = _httpv2runcommand(ui, repo, req, res, authedperm,
211 216 reqcommand, reactor, outstream,
212 217 meta, issubsequent=seencommand)
@@ -176,11 +176,14 b' Request to read-only command works out o'
176 176 s> Content-Type: application/mercurial-exp-framing-0006\r\n
177 177 s> Transfer-Encoding: chunked\r\n
178 178 s> \r\n
179 s> 11\r\n
180 s> \t\x00\x00\x01\x00\x02\x01\x92Hidentity
181 s> \r\n
179 182 s> 13\r\n
180 s> \x0b\x00\x00\x01\x00\x02\x011\xa1FstatusBok
183 s> \x0b\x00\x00\x01\x00\x02\x041\xa1FstatusBok
181 184 s> \r\n
182 185 s> 27\r\n
183 s> \x1f\x00\x00\x01\x00\x02\x001X\x1dcustomreadonly bytes response
186 s> \x1f\x00\x00\x01\x00\x02\x041X\x1dcustomreadonly bytes response
184 187 s> \r\n
185 188 s> 8\r\n
186 189 s> \x00\x00\x00\x01\x00\x02\x002
@@ -209,16 +212,21 b' Request to read-only command works out o'
209 212 s> Content-Type: application/mercurial-exp-framing-0006\r\n
210 213 s> Transfer-Encoding: chunked\r\n
211 214 s> \r\n
215 s> 11\r\n
216 s> \t\x00\x00\x01\x00\x02\x01\x92
217 s> Hidentity
218 s> \r\n
219 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
212 220 s> 13\r\n
213 s> \x0b\x00\x00\x01\x00\x02\x011
221 s> \x0b\x00\x00\x01\x00\x02\x041
214 222 s> \xa1FstatusBok
215 223 s> \r\n
216 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
224 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
217 225 s> 27\r\n
218 s> \x1f\x00\x00\x01\x00\x02\x001
226 s> \x1f\x00\x00\x01\x00\x02\x041
219 227 s> X\x1dcustomreadonly bytes response
220 228 s> \r\n
221 received frame(size=31; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
229 received frame(size=31; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
222 230 s> 8\r\n
223 231 s> \x00\x00\x00\x01\x00\x02\x002
224 232 s> \r\n
@@ -335,11 +343,14 b' Authorized request for valid read-write '
335 343 s> Content-Type: application/mercurial-exp-framing-0006\r\n
336 344 s> Transfer-Encoding: chunked\r\n
337 345 s> \r\n
346 s> 11\r\n
347 s> \t\x00\x00\x01\x00\x02\x01\x92Hidentity
348 s> \r\n
338 349 s> 13\r\n
339 s> \x0b\x00\x00\x01\x00\x02\x011\xa1FstatusBok
350 s> \x0b\x00\x00\x01\x00\x02\x041\xa1FstatusBok
340 351 s> \r\n
341 352 s> 27\r\n
342 s> \x1f\x00\x00\x01\x00\x02\x001X\x1dcustomreadonly bytes response
353 s> \x1f\x00\x00\x01\x00\x02\x041X\x1dcustomreadonly bytes response
343 354 s> \r\n
344 355 s> 8\r\n
345 356 s> \x00\x00\x00\x01\x00\x02\x002
@@ -464,11 +475,14 b' Multiple requests to regular command URL'
464 475 s> Content-Type: application/mercurial-exp-framing-0006\r\n
465 476 s> Transfer-Encoding: chunked\r\n
466 477 s> \r\n
478 s> 11\r\n
479 s> \t\x00\x00\x01\x00\x02\x01\x92Hidentity
480 s> \r\n
467 481 s> 13\r\n
468 s> \x0b\x00\x00\x01\x00\x02\x011\xa1FstatusBok
482 s> \x0b\x00\x00\x01\x00\x02\x041\xa1FstatusBok
469 483 s> \r\n
470 484 s> 27\r\n
471 s> \x1f\x00\x00\x01\x00\x02\x001X\x1dcustomreadonly bytes response
485 s> \x1f\x00\x00\x01\x00\x02\x041X\x1dcustomreadonly bytes response
472 486 s> \r\n
473 487 s> 8\r\n
474 488 s> \x00\x00\x00\x01\x00\x02\x002
@@ -503,20 +517,23 b' Multiple requests to "multirequest" URL '
503 517 s> Content-Type: application/mercurial-exp-framing-0006\r\n
504 518 s> Transfer-Encoding: chunked\r\n
505 519 s> \r\n
520 s> 11\r\n
521 s> \t\x00\x00\x01\x00\x02\x01\x92Hidentity
522 s> \r\n
506 523 s> 13\r\n
507 s> \x0b\x00\x00\x01\x00\x02\x011\xa1FstatusBok
524 s> \x0b\x00\x00\x01\x00\x02\x041\xa1FstatusBok
508 525 s> \r\n
509 526 s> 27\r\n
510 s> \x1f\x00\x00\x01\x00\x02\x001X\x1dcustomreadonly bytes response
527 s> \x1f\x00\x00\x01\x00\x02\x041X\x1dcustomreadonly bytes response
511 528 s> \r\n
512 529 s> 8\r\n
513 530 s> \x00\x00\x00\x01\x00\x02\x002
514 531 s> \r\n
515 532 s> 13\r\n
516 s> \x0b\x00\x00\x03\x00\x02\x001\xa1FstatusBok
533 s> \x0b\x00\x00\x03\x00\x02\x041\xa1FstatusBok
517 534 s> \r\n
518 535 s> 27\r\n
519 s> \x1f\x00\x00\x03\x00\x02\x001X\x1dcustomreadonly bytes response
536 s> \x1f\x00\x00\x03\x00\x02\x041X\x1dcustomreadonly bytes response
520 537 s> \r\n
521 538 s> 8\r\n
522 539 s> \x00\x00\x00\x03\x00\x02\x002
@@ -553,20 +570,23 b' Interleaved requests to "multirequest" a'
553 570 s> Content-Type: application/mercurial-exp-framing-0006\r\n
554 571 s> Transfer-Encoding: chunked\r\n
555 572 s> \r\n
573 s> 11\r\n
574 s> \t\x00\x00\x03\x00\x02\x01\x92Hidentity
575 s> \r\n
556 576 s> 13\r\n
557 s> \x0b\x00\x00\x03\x00\x02\x011\xa1FstatusBok
577 s> \x0b\x00\x00\x03\x00\x02\x041\xa1FstatusBok
558 578 s> \r\n
559 579 s> 28\r\n
560 s> \x00\x00\x03\x00\x02\x001\xa3Ibookmarks@Jnamespaces@Fphases@
580 s> \x00\x00\x03\x00\x02\x041\xa3Ibookmarks@Jnamespaces@Fphases@
561 581 s> \r\n
562 582 s> 8\r\n
563 583 s> \x00\x00\x00\x03\x00\x02\x002
564 584 s> \r\n
565 585 s> 13\r\n
566 s> \x0b\x00\x00\x01\x00\x02\x001\xa1FstatusBok
586 s> \x0b\x00\x00\x01\x00\x02\x041\xa1FstatusBok
567 587 s> \r\n
568 588 s> 9\r\n
569 s> \x01\x00\x00\x01\x00\x02\x001\xa0
589 s> \x01\x00\x00\x01\x00\x02\x041\xa0
570 590 s> \r\n
571 591 s> 8\r\n
572 592 s> \x00\x00\x00\x01\x00\x02\x002
@@ -641,16 +661,21 b' Defining an invalid content encoding res'
641 661 s> Content-Type: application/mercurial-exp-framing-0006\r\n
642 662 s> Transfer-Encoding: chunked\r\n
643 663 s> \r\n
664 s> 11\r\n
665 s> \t\x00\x00\x01\x00\x02\x01\x92
666 s> Hidentity
667 s> \r\n
668 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
644 669 s> 13\r\n
645 s> \x0b\x00\x00\x01\x00\x02\x011
670 s> \x0b\x00\x00\x01\x00\x02\x041
646 671 s> \xa1FstatusBok
647 672 s> \r\n
648 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
673 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
649 674 s> 1e\r\n
650 s> \x16\x00\x00\x01\x00\x02\x001
675 s> \x16\x00\x00\x01\x00\x02\x041
651 676 s> \x81T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
652 677 s> \r\n
653 received frame(size=22; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
678 received frame(size=22; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
654 679 s> 8\r\n
655 680 s> \x00\x00\x00\x01\x00\x02\x002
656 681 s> \r\n
@@ -685,22 +710,18 b' Defining an invalid content encoding res'
685 710 s> Content-Type: application/mercurial-exp-framing-0006\r\n
686 711 s> Transfer-Encoding: chunked\r\n
687 712 s> \r\n
688 s> 13\r\n
689 s> \x0b\x00\x00\x01\x00\x02\x011
690 s> \xa1FstatusBok
713 s> 11\r\n
714 s> \t\x00\x00\x01\x00\x02\x01\x92
715 s> Hzstd-8mb
691 716 s> \r\n
692 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
693 s> 1e\r\n
694 s> \x16\x00\x00\x01\x00\x02\x001
695 s> \x81T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
717 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
718 s> 25\r\n
719 s> \x1d\x00\x00\x01\x00\x02\x042
720 s> (\xb5/\xfd\x00P\xa4\x00\x00p\xa1FstatusBok\x81T\x00\x01\x00\tP\x02
696 721 s> \r\n
697 received frame(size=22; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
698 s> 8\r\n
699 s> \x00\x00\x00\x01\x00\x02\x002
700 s> \r\n
722 received frame(size=29; request=1; stream=2; streamflags=encoded; type=command-response; flags=eos)
701 723 s> 0\r\n
702 724 s> \r\n
703 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
704 725 response: [
705 726 b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
706 727 ]
@@ -333,16 +333,21 b' Client with HTTPv2 enabled automatically'
333 333 s> Content-Type: application/mercurial-exp-framing-0006\r\n
334 334 s> Transfer-Encoding: chunked\r\n
335 335 s> \r\n
336 s> 11\r\n
337 s> \t\x00\x00\x01\x00\x02\x01\x92
338 s> Hidentity
339 s> \r\n
340 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
336 341 s> 13\r\n
337 s> \x0b\x00\x00\x01\x00\x02\x011
342 s> \x0b\x00\x00\x01\x00\x02\x041
338 343 s> \xa1FstatusBok
339 344 s> \r\n
340 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
345 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
341 346 s> 1e\r\n
342 s> \x16\x00\x00\x01\x00\x02\x001
347 s> \x16\x00\x00\x01\x00\x02\x041
343 348 s> \x81T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
344 349 s> \r\n
345 received frame(size=22; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
350 received frame(size=22; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
346 351 s> 8\r\n
347 352 s> \x00\x00\x00\x01\x00\x02\x002
348 353 s> \r\n
@@ -453,16 +453,21 b' capabilities command returns expected in'
453 453 s> Content-Type: application/mercurial-exp-framing-0006\r\n
454 454 s> Transfer-Encoding: chunked\r\n
455 455 s> \r\n
456 s> 11\r\n
457 s> \t\x00\x00\x01\x00\x02\x01\x92
458 s> Hidentity
459 s> \r\n
460 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
456 461 s> 13\r\n
457 s> \x0b\x00\x00\x01\x00\x02\x011
462 s> \x0b\x00\x00\x01\x00\x02\x041
458 463 s> \xa1FstatusBok
459 464 s> \r\n
460 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
465 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
461 466 s> 508\r\n
462 s> \x00\x05\x00\x01\x00\x02\x001
467 s> \x00\x05\x00\x01\x00\x02\x041
463 468 s> \xa4Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionInoderange\xa3Gdefault\xf6Hrequired\xf4DtypeDlistEnodes\xa3Gdefault\xf6Hrequired\xf4DtypeDlistJnodesdepth\xa3Gdefault\xf6Hrequired\xf4DtypeCintKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullGpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushQframingmediatypes\x81X&application/mercurial-exp-framing-0006Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x82LgeneraldeltaHrevlogv1
464 469 s> \r\n
465 received frame(size=1280; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
470 received frame(size=1280; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
466 471 s> 8\r\n
467 472 s> \x00\x00\x00\x01\x00\x02\x002
468 473 s> \r\n
@@ -86,16 +86,21 b' Redirect targets advertised when configu'
86 86 s> Content-Type: application/mercurial-exp-framing-0006\r\n
87 87 s> Transfer-Encoding: chunked\r\n
88 88 s> \r\n
89 s> 11\r\n
90 s> \t\x00\x00\x01\x00\x02\x01\x92
91 s> Hidentity
92 s> \r\n
93 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
89 94 s> 13\r\n
90 s> \x0b\x00\x00\x01\x00\x02\x011
95 s> \x0b\x00\x00\x01\x00\x02\x041
91 96 s> \xa1FstatusBok
92 97 s> \r\n
93 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
98 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
94 99 s> 588\r\n
95 s> \x80\x05\x00\x01\x00\x02\x001
100 s> \x80\x05\x00\x01\x00\x02\x041
96 101 s> \xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionInoderange\xa3Gdefault\xf6Hrequired\xf4DtypeDlistEnodes\xa3Gdefault\xf6Hrequired\xf4DtypeDlistJnodesdepth\xa3Gdefault\xf6Hrequired\xf4DtypeCintKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullGpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushQframingmediatypes\x81X&application/mercurial-exp-framing-0006Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x82LgeneraldeltaHrevlogv1Hredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x81\xa5DnameHtarget-aHprotocolDhttpKsnirequired\xf4Ktlsversions\x82C1.2C1.3Duris\x81Shttp://example.com/
97 102 s> \r\n
98 received frame(size=1408; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
103 received frame(size=1408; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
99 104 s> 8\r\n
100 105 s> \x00\x00\x00\x01\x00\x02\x002
101 106 s> \r\n
@@ -370,16 +375,21 b' Unknown protocol is filtered from compat'
370 375 s> Content-Type: application/mercurial-exp-framing-0006\r\n
371 376 s> Transfer-Encoding: chunked\r\n
372 377 s> \r\n
378 s> 11\r\n
379 s> \t\x00\x00\x01\x00\x02\x01\x92
380 s> Hidentity
381 s> \r\n
382 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
373 383 s> 13\r\n
374 s> \x0b\x00\x00\x01\x00\x02\x011
384 s> \x0b\x00\x00\x01\x00\x02\x041
375 385 s> \xa1FstatusBok
376 386 s> \r\n
377 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
387 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
378 388 s> 5a3\r\n
379 s> \x9b\x05\x00\x01\x00\x02\x001
389 s> \x9b\x05\x00\x01\x00\x02\x041
380 390 s> \xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionInoderange\xa3Gdefault\xf6Hrequired\xf4DtypeDlistEnodes\xa3Gdefault\xf6Hrequired\xf4DtypeDlistJnodesdepth\xa3Gdefault\xf6Hrequired\xf4DtypeCintKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullGpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushQframingmediatypes\x81X&application/mercurial-exp-framing-0006Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x82LgeneraldeltaHrevlogv1Hredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x82\xa3DnameHtarget-aHprotocolDhttpDuris\x81Shttp://example.com/\xa3DnameHtarget-bHprotocolGunknownDuris\x81Vunknown://example.com/
381 391 s> \r\n
382 received frame(size=1435; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
392 received frame(size=1435; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
383 393 s> 8\r\n
384 394 s> \x00\x00\x00\x01\x00\x02\x002
385 395 s> \r\n
@@ -660,16 +670,21 b' Missing SNI support filters targets that'
660 670 s> Content-Type: application/mercurial-exp-framing-0006\r\n
661 671 s> Transfer-Encoding: chunked\r\n
662 672 s> \r\n
673 s> 11\r\n
674 s> \t\x00\x00\x01\x00\x02\x01\x92
675 s> Hidentity
676 s> \r\n
677 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
663 678 s> 13\r\n
664 s> \x0b\x00\x00\x01\x00\x02\x011
679 s> \x0b\x00\x00\x01\x00\x02\x041
665 680 s> \xa1FstatusBok
666 681 s> \r\n
667 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
682 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
668 683 s> 57b\r\n
669 s> s\x05\x00\x01\x00\x02\x001
684 s> s\x05\x00\x01\x00\x02\x041
670 685 s> \xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionInoderange\xa3Gdefault\xf6Hrequired\xf4DtypeDlistEnodes\xa3Gdefault\xf6Hrequired\xf4DtypeDlistJnodesdepth\xa3Gdefault\xf6Hrequired\xf4DtypeCintKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullGpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushQframingmediatypes\x81X&application/mercurial-exp-framing-0006Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x82LgeneraldeltaHrevlogv1Hredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x81\xa4DnameNtarget-bad-tlsHprotocolEhttpsKsnirequired\xf5Duris\x81Thttps://example.com/
671 686 s> \r\n
672 received frame(size=1395; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
687 received frame(size=1395; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
673 688 s> 8\r\n
674 689 s> \x00\x00\x00\x01\x00\x02\x002
675 690 s> \r\n
@@ -940,16 +955,21 b' Unknown tls value is filtered from compa'
940 955 s> Content-Type: application/mercurial-exp-framing-0006\r\n
941 956 s> Transfer-Encoding: chunked\r\n
942 957 s> \r\n
958 s> 11\r\n
959 s> \t\x00\x00\x01\x00\x02\x01\x92
960 s> Hidentity
961 s> \r\n
962 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
943 963 s> 13\r\n
944 s> \x0b\x00\x00\x01\x00\x02\x011
964 s> \x0b\x00\x00\x01\x00\x02\x041
945 965 s> \xa1FstatusBok
946 966 s> \r\n
947 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
967 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
948 968 s> 581\r\n
949 s> y\x05\x00\x01\x00\x02\x001
969 s> y\x05\x00\x01\x00\x02\x041
950 970 s> \xa5Hcommands\xaaIbranchmap\xa2Dargs\xa0Kpermissions\x81DpullLcapabilities\xa2Dargs\xa0Kpermissions\x81DpullMchangesetdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x84IbookmarksGparentsEphaseHrevisionInoderange\xa3Gdefault\xf6Hrequired\xf4DtypeDlistEnodes\xa3Gdefault\xf6Hrequired\xf4DtypeDlistJnodesdepth\xa3Gdefault\xf6Hrequired\xf4DtypeCintKpermissions\x81DpullHfiledata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDpath\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullEheads\xa2Dargs\xa1Jpubliconly\xa3Gdefault\xf4Hrequired\xf4DtypeDboolKpermissions\x81DpullEknown\xa2Dargs\xa1Enodes\xa3Gdefault\x80Hrequired\xf4DtypeDlistKpermissions\x81DpullHlistkeys\xa2Dargs\xa1Inamespace\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullFlookup\xa2Dargs\xa1Ckey\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullLmanifestdata\xa2Dargs\xa4Ffields\xa4Gdefault\xd9\x01\x02\x80Hrequired\xf4DtypeCsetKvalidvalues\xd9\x01\x02\x82GparentsHrevisionKhaveparents\xa3Gdefault\xf4Hrequired\xf4DtypeDboolEnodes\xa2Hrequired\xf5DtypeDlistDtree\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpullGpushkey\xa2Dargs\xa4Ckey\xa2Hrequired\xf5DtypeEbytesInamespace\xa2Hrequired\xf5DtypeEbytesCnew\xa2Hrequired\xf5DtypeEbytesCold\xa2Hrequired\xf5DtypeEbytesKpermissions\x81DpushQframingmediatypes\x81X&application/mercurial-exp-framing-0006Rpathfilterprefixes\xd9\x01\x02\x82Epath:Lrootfilesin:Nrawrepoformats\x82LgeneraldeltaHrevlogv1Hredirect\xa2Fhashes\x82Fsha256Dsha1Gtargets\x81\xa4DnameNtarget-bad-tlsHprotocolEhttpsKtlsversions\x82B42B39Duris\x81Thttps://example.com/
951 971 s> \r\n
952 received frame(size=1401; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
972 received frame(size=1401; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
953 973 s> 8\r\n
954 974 s> \x00\x00\x00\x01\x00\x02\x002
955 975 s> \r\n
@@ -45,11 +45,12 b' Test basic clone'
45 45 sending command known: {
46 46 'nodes': []
47 47 }
48 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
49 received frame(size=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
48 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
49 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
50 received frame(size=43; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
50 51 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
51 received frame(size=11; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
52 received frame(size=1; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
52 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
53 received frame(size=1; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
53 54 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
54 55 sending 1 commands
55 56 sending command changesetdata: {
@@ -67,8 +68,9 b' Test basic clone'
67 68 ]
68 69 ]
69 70 }
70 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
71 received frame(size=941; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
71 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
72 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
73 received frame(size=941; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
72 74 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
73 75 add changeset 3390ef850073
74 76 add changeset 4432d83626e8
@@ -92,8 +94,9 b' Test basic clone'
92 94 ],
93 95 'tree': ''
94 96 }
95 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
96 received frame(size=992; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
97 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
98 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
99 received frame(size=992; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
97 100 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
98 101 sending 2 commands
99 102 sending command filedata: {
@@ -122,11 +125,12 b' Test basic clone'
122 125 ],
123 126 'path': 'b'
124 127 }
125 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
126 received frame(size=431; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
128 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
129 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
130 received frame(size=431; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
127 131 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
128 received frame(size=11; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
129 received frame(size=431; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
132 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
133 received frame(size=431; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
130 134 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
131 135 updating the branch cache
132 136 new changesets 3390ef850073:caa2a465451d (3 drafts)
@@ -173,8 +177,9 b' Cloning only a specific revision works'
173 177 sending command lookup: {
174 178 'key': '4432d83626e8'
175 179 }
176 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
177 received frame(size=21; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
180 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
181 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
182 received frame(size=21; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
178 183 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
179 184 query 1; heads
180 185 sending 2 commands
@@ -182,11 +187,12 b' Cloning only a specific revision works'
182 187 sending command known: {
183 188 'nodes': []
184 189 }
185 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
186 received frame(size=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
190 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
191 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
192 received frame(size=43; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
187 193 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
188 received frame(size=11; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
189 received frame(size=1; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
194 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
195 received frame(size=1; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
190 196 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
191 197 sending 1 commands
192 198 sending command changesetdata: {
@@ -203,8 +209,9 b' Cloning only a specific revision works'
203 209 ]
204 210 ]
205 211 }
206 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
207 received frame(size=381; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
212 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
213 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
214 received frame(size=381; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
208 215 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
209 216 add changeset 3390ef850073
210 217 add changeset 4432d83626e8
@@ -222,8 +229,9 b' Cloning only a specific revision works'
222 229 ],
223 230 'tree': ''
224 231 }
225 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
226 received frame(size=404; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
232 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
233 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
234 received frame(size=404; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
227 235 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
228 236 sending 2 commands
229 237 sending command filedata: {
@@ -249,11 +257,12 b' Cloning only a specific revision works'
249 257 ],
250 258 'path': 'b'
251 259 }
252 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
253 received frame(size=277; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
260 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
261 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
262 received frame(size=277; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
254 263 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
255 received frame(size=11; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
256 received frame(size=123; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
264 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
265 received frame(size=123; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
257 266 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
258 267 updating the branch cache
259 268 new changesets 3390ef850073:4432d83626e8
@@ -286,11 +295,12 b' Incremental pull works'
286 295 'D2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0'
287 296 ]
288 297 }
289 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
290 received frame(size=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
298 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
299 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
300 received frame(size=43; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
291 301 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
292 received frame(size=11; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
293 received frame(size=2; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
302 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
303 received frame(size=2; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
294 304 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
295 305 searching for changes
296 306 all local heads known remotely
@@ -312,8 +322,9 b' Incremental pull works'
312 322 ]
313 323 ]
314 324 }
315 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
316 received frame(size=613; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
325 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
326 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
327 received frame(size=613; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
317 328 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
318 329 add changeset cd2534766bec
319 330 add changeset e96ae20f4188
@@ -333,8 +344,9 b' Incremental pull works'
333 344 ],
334 345 'tree': ''
335 346 }
336 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
337 received frame(size=601; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
347 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
348 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
349 received frame(size=601; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
338 350 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
339 351 sending 2 commands
340 352 sending command filedata: {
@@ -362,11 +374,12 b' Incremental pull works'
362 374 ],
363 375 'path': 'b'
364 376 }
365 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
366 received frame(size=277; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
377 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
378 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
379 received frame(size=277; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
367 380 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
368 received frame(size=11; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
369 received frame(size=431; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
381 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
382 received frame(size=431; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
370 383 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
371 384 updating the branch cache
372 385 new changesets cd2534766bec:caa2a465451d (3 drafts)
@@ -409,11 +422,12 b' Phase-only update works'
409 422 '\xca\xa2\xa4eE\x1d\xd1\xfa\xcd\xa0\xf5\xb1#\x12\xc3UXA\x88\xa1'
410 423 ]
411 424 }
412 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
413 received frame(size=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
425 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
426 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
427 received frame(size=43; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
414 428 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
415 received frame(size=11; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
416 received frame(size=3; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
429 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
430 received frame(size=3; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
417 431 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
418 432 searching for changes
419 433 all remote heads known locally
@@ -436,8 +450,9 b' Phase-only update works'
436 450 ]
437 451 ]
438 452 }
439 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
440 received frame(size=92; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
453 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
454 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
455 received frame(size=92; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
441 456 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
442 457 checking for updated bookmarks
443 458 2 local changesets published
@@ -472,11 +487,12 b' Bookmarks are transferred on clone'
472 487 sending command known: {
473 488 'nodes': []
474 489 }
475 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
476 received frame(size=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
490 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
491 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
492 received frame(size=43; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
477 493 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
478 received frame(size=11; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
479 received frame(size=1; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
494 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
495 received frame(size=1; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
480 496 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
481 497 sending 1 commands
482 498 sending command changesetdata: {
@@ -494,8 +510,9 b' Bookmarks are transferred on clone'
494 510 ]
495 511 ]
496 512 }
497 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
498 received frame(size=979; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
513 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
514 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
515 received frame(size=979; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
499 516 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
500 517 add changeset 3390ef850073
501 518 add changeset 4432d83626e8
@@ -521,8 +538,9 b' Bookmarks are transferred on clone'
521 538 ],
522 539 'tree': ''
523 540 }
524 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
525 received frame(size=992; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
541 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
542 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
543 received frame(size=992; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
526 544 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
527 545 sending 2 commands
528 546 sending command filedata: {
@@ -551,11 +569,12 b' Bookmarks are transferred on clone'
551 569 ],
552 570 'path': 'b'
553 571 }
554 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
555 received frame(size=431; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
572 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
573 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
574 received frame(size=431; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
556 575 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
557 received frame(size=11; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
558 received frame(size=431; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
576 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
577 received frame(size=431; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
559 578 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
560 579 updating the branch cache
561 580 new changesets 3390ef850073:caa2a465451d (1 drafts)
@@ -583,11 +602,12 b' Server-side bookmark moves are reflected'
583 602 '\xca\xa2\xa4eE\x1d\xd1\xfa\xcd\xa0\xf5\xb1#\x12\xc3UXA\x88\xa1'
584 603 ]
585 604 }
586 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
587 received frame(size=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
605 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
606 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
607 received frame(size=43; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
588 608 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
589 received frame(size=11; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
590 received frame(size=3; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
609 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
610 received frame(size=3; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
591 611 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
592 612 searching for changes
593 613 all remote heads known locally
@@ -610,8 +630,9 b' Server-side bookmark moves are reflected'
610 630 ]
611 631 ]
612 632 }
613 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
614 received frame(size=144; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
633 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
634 received frame(size=11; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
635 received frame(size=144; request=1; stream=2; streamflags=encoded; type=command-response; flags=continuation)
615 636 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
616 637 checking for updated bookmarks
617 638 updating bookmark book-1
@@ -371,8 +371,9 b' class ServerReactorTests(unittest.TestCa'
371 371 outstream, 1, [b'response'])
372 372 self.assertaction(result, b'sendframes')
373 373 self.assertframesequal(result[1][b'framegen'], [
374 b'1 2 stream-begin command-response continuation %s' % OK,
375 b'1 2 0 command-response continuation cbor:b"response"',
374 b'1 2 stream-begin stream-settings eos cbor:b"identity"',
375 b'1 2 encoded command-response continuation %s' % OK,
376 b'1 2 encoded command-response continuation cbor:b"response"',
376 377 b'1 2 0 command-response eos ',
377 378 ])
378 379
@@ -390,10 +391,11 b' class ServerReactorTests(unittest.TestCa'
390 391 outstream, 1, [first + second])
391 392 self.assertaction(result, b'sendframes')
392 393 self.assertframesequal(result[1][b'framegen'], [
393 b'1 2 stream-begin command-response continuation %s' % OK,
394 b'1 2 0 command-response continuation Y\x80d',
395 b'1 2 0 command-response continuation %s' % first,
396 b'1 2 0 command-response continuation %s' % second,
394 b'1 2 stream-begin stream-settings eos cbor:b"identity"',
395 b'1 2 encoded command-response continuation %s' % OK,
396 b'1 2 encoded command-response continuation Y\x80d',
397 b'1 2 encoded command-response continuation %s' % first,
398 b'1 2 encoded command-response continuation %s' % second,
397 399 b'1 2 0 command-response eos '
398 400 ])
399 401
@@ -427,8 +429,9 b' class ServerReactorTests(unittest.TestCa'
427 429 result = reactor.oninputeof()
428 430 self.assertaction(result, b'sendframes')
429 431 self.assertframesequal(result[1][b'framegen'], [
430 b'1 2 stream-begin command-response continuation %s' % OK,
431 b'1 2 0 command-response continuation cbor:b"response"',
432 b'1 2 stream-begin stream-settings eos cbor:b"identity"',
433 b'1 2 encoded command-response continuation %s' % OK,
434 b'1 2 encoded command-response continuation cbor:b"response"',
432 435 b'1 2 0 command-response eos ',
433 436 ])
434 437
@@ -448,11 +451,12 b' class ServerReactorTests(unittest.TestCa'
448 451 result = reactor.oninputeof()
449 452 self.assertaction(result, b'sendframes')
450 453 self.assertframesequal(result[1][b'framegen'], [
451 b'1 2 stream-begin command-response continuation %s' % OK,
452 b'1 2 0 command-response continuation cbor:b"response1"',
454 b'1 2 stream-begin stream-settings eos cbor:b"identity"',
455 b'1 2 encoded command-response continuation %s' % OK,
456 b'1 2 encoded command-response continuation cbor:b"response1"',
453 457 b'1 2 0 command-response eos ',
454 b'3 2 0 command-response continuation %s' % OK,
455 b'3 2 0 command-response continuation cbor:b"response2"',
458 b'3 2 encoded command-response continuation %s' % OK,
459 b'3 2 encoded command-response continuation cbor:b"response2"',
456 460 b'3 2 0 command-response eos ',
457 461 ])
458 462
@@ -472,14 +476,15 b' class ServerReactorTests(unittest.TestCa'
472 476 result = reactor.oninputeof()
473 477 self.assertaction(result, b'sendframes')
474 478 self.assertframesequal(result[1][b'framegen'], [
475 b'3 2 stream-begin command-response continuation %s' % OK,
476 b'3 2 0 command-response continuation cbor:b"response3"',
479 b'3 2 stream-begin stream-settings eos cbor:b"identity"',
480 b'3 2 encoded command-response continuation %s' % OK,
481 b'3 2 encoded command-response continuation cbor:b"response3"',
477 482 b'3 2 0 command-response eos ',
478 b'1 2 0 command-response continuation %s' % OK,
479 b'1 2 0 command-response continuation cbor:b"response1"',
483 b'1 2 encoded command-response continuation %s' % OK,
484 b'1 2 encoded command-response continuation cbor:b"response1"',
480 485 b'1 2 0 command-response eos ',
481 b'5 2 0 command-response continuation %s' % OK,
482 b'5 2 0 command-response continuation cbor:b"response5"',
486 b'5 2 encoded command-response continuation %s' % OK,
487 b'5 2 encoded command-response continuation cbor:b"response5"',
483 488 b'5 2 0 command-response eos ',
484 489 ])
485 490
General Comments 0
You need to be logged in to leave comments. Login now