##// 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 def createcommandresponseokframe(stream, requestid):
368 def createcommandresponseokframe(stream, requestid):
369 overall = b''.join(cborutil.streamencode({b'status': b'ok'}))
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 return stream.makeframe(requestid=requestid,
380 return stream.makeframe(requestid=requestid,
372 typeid=FRAME_TYPE_COMMAND_RESPONSE,
381 typeid=FRAME_TYPE_COMMAND_RESPONSE,
373 flags=FLAG_COMMAND_RESPONSE_CONTINUATION,
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 """Create an empty payload frame representing command end-of-stream."""
388 """Create an empty payload frame representing command end-of-stream."""
378 return stream.makeframe(requestid=requestid,
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,
379 typeid=FRAME_TYPE_COMMAND_RESPONSE,
404 typeid=FRAME_TYPE_COMMAND_RESPONSE,
380 flags=FLAG_COMMAND_RESPONSE_EOS,
405 flags=flags,
381 payload=b'')
406 payload=chunk,
407 encoded=payload != b'')
408
409 if done:
410 break
382
411
383 def createalternatelocationresponseframe(stream, requestid, location):
412 def createalternatelocationresponseframe(stream, requestid, location):
384 data = {
413 data = {
@@ -395,10 +424,19 b' def createalternatelocationresponseframe'
395 if value is not None:
424 if value is not None:
396 data[b'location'][pycompat.bytestr(a)] = value
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 return stream.makeframe(requestid=requestid,
435 return stream.makeframe(requestid=requestid,
399 typeid=FRAME_TYPE_COMMAND_RESPONSE,
436 typeid=FRAME_TYPE_COMMAND_RESPONSE,
400 flags=FLAG_COMMAND_RESPONSE_CONTINUATION,
437 flags=FLAG_COMMAND_RESPONSE_CONTINUATION,
401 payload=b''.join(cborutil.streamencode(data)))
438 payload=payload,
439 encoded=encoded)
402
440
403 def createcommanderrorresponse(stream, requestid, message, args=None):
441 def createcommanderrorresponse(stream, requestid, message, args=None):
404 # TODO should this be using a list of {'msg': ..., 'args': {}} so atom
442 # TODO should this be using a list of {'msg': ..., 'args': {}} so atom
@@ -519,6 +557,8 b' class bufferingcommandresponseemitter(ob'
519 yield frame
557 yield frame
520 return
558 return
521
559
560 data = self._stream.encode(data)
561
522 # There is a ton of potential to do more complicated things here.
562 # There is a ton of potential to do more complicated things here.
523 # Our immediate goal is to coalesce small chunks into big frames,
563 # Our immediate goal is to coalesce small chunks into big frames,
524 # not achieve the fewest number of frames possible. So we go with
564 # not achieve the fewest number of frames possible. So we go with
@@ -548,7 +588,8 b' class bufferingcommandresponseemitter(ob'
548 self._requestid,
588 self._requestid,
549 typeid=FRAME_TYPE_COMMAND_RESPONSE,
589 typeid=FRAME_TYPE_COMMAND_RESPONSE,
550 flags=FLAG_COMMAND_RESPONSE_CONTINUATION,
590 flags=FLAG_COMMAND_RESPONSE_CONTINUATION,
551 payload=chunk)
591 payload=chunk,
592 encoded=True)
552
593
553 if offset == len(data):
594 if offset == len(data):
554 return
595 return
@@ -583,7 +624,8 b' class bufferingcommandresponseemitter(ob'
583 self._requestid,
624 self._requestid,
584 typeid=FRAME_TYPE_COMMAND_RESPONSE,
625 typeid=FRAME_TYPE_COMMAND_RESPONSE,
585 flags=FLAG_COMMAND_RESPONSE_CONTINUATION,
626 flags=FLAG_COMMAND_RESPONSE_CONTINUATION,
586 payload=payload)
627 payload=payload,
628 encoded=True)
587
629
588 # TODO consider defining encoders/decoders using the util.compressionengine
630 # TODO consider defining encoders/decoders using the util.compressionengine
589 # mechanism.
631 # mechanism.
@@ -776,7 +818,9 b' class outputstream(stream):'
776
818
777 def __init__(self, streamid, active=False):
819 def __init__(self, streamid, active=False):
778 super(outputstream, self).__init__(streamid, active=active)
820 super(outputstream, self).__init__(streamid, active=active)
821 self.streamsettingssent = False
779 self._encoder = None
822 self._encoder = None
823 self._encodername = None
780
824
781 def setencoder(self, ui, name):
825 def setencoder(self, ui, name):
782 """Set the encoder for this stream.
826 """Set the encoder for this stream.
@@ -787,6 +831,7 b' class outputstream(stream):'
787 raise error.Abort(_('unknown stream encoder: %s') % name)
831 raise error.Abort(_('unknown stream encoder: %s') % name)
788
832
789 self._encoder = STREAM_ENCODERS[name][0](ui)
833 self._encoder = STREAM_ENCODERS[name][0](ui)
834 self._encodername = name
790
835
791 def encode(self, data):
836 def encode(self, data):
792 if not self._encoder:
837 if not self._encoder:
@@ -806,6 +851,45 b' class outputstream(stream):'
806
851
807 self._encoder.finish()
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 def ensureserverstream(stream):
893 def ensureserverstream(stream):
810 if stream.streamid % 2:
894 if stream.streamid % 2:
811 raise error.ProgrammingError('server should only write to even '
895 raise error.ProgrammingError('server should only write to even '
@@ -995,7 +1079,9 b' class serverreactor(object):'
995 yield frame
1079 yield frame
996
1080
997 if emitted:
1081 if emitted:
998 yield createcommandresponseeosframe(stream, requestid)
1082 for frame in createcommandresponseeosframes(
1083 stream, requestid):
1084 yield frame
999 break
1085 break
1000
1086
1001 except error.WireprotoCommandError as e:
1087 except error.WireprotoCommandError as e:
@@ -1022,6 +1108,10 b' class serverreactor(object):'
1022 'alternatelocationresponse seen after initial '
1108 'alternatelocationresponse seen after initial '
1023 'output object')
1109 'output object')
1024
1110
1111 frame = stream.makestreamsettingsframe(requestid)
1112 if frame:
1113 yield frame
1114
1025 yield createalternatelocationresponseframe(
1115 yield createalternatelocationresponseframe(
1026 stream, requestid, o)
1116 stream, requestid, o)
1027
1117
@@ -1034,7 +1124,16 b' class serverreactor(object):'
1034 'object follows alternatelocationresponse')
1124 'object follows alternatelocationresponse')
1035
1125
1036 if not emitted:
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 emitted = True
1137 emitted = True
1039
1138
1040 # Objects emitted by command functions can be serializable
1139 # Objects emitted by command functions can be serializable
@@ -1121,13 +1220,25 b' class serverreactor(object):'
1121 return self._handlesendframes(sendframes())
1220 return self._handlesendframes(sendframes())
1122
1221
1123 def makeoutputstream(self):
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 streamid = self._nextoutgoingstreamid
1229 streamid = self._nextoutgoingstreamid
1126 self._nextoutgoingstreamid += 2
1230 self._nextoutgoingstreamid += 2
1127
1231
1128 s = outputstream(streamid)
1232 s = outputstream(streamid)
1129 self._outgoingstreams[streamid] = s
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 return s
1242 return s
1132
1243
1133 def _makeerrorresult(self, msg):
1244 def _makeerrorresult(self, msg):
@@ -194,7 +194,7 b' def _processhttpv2request(ui, repo, req,'
194 reactor = wireprotoframing.serverreactor(ui, deferoutput=True)
194 reactor = wireprotoframing.serverreactor(ui, deferoutput=True)
195 seencommand = False
195 seencommand = False
196
196
197 outstream = reactor.makeoutputstream()
197 outstream = None
198
198
199 while True:
199 while True:
200 frame = wireprotoframing.readframe(req.bodyfh)
200 frame = wireprotoframing.readframe(req.bodyfh)
@@ -207,6 +207,11 b' def _processhttpv2request(ui, repo, req,'
207 # Need more data before we can do anything.
207 # Need more data before we can do anything.
208 continue
208 continue
209 elif action == 'runcommand':
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 sentoutput = _httpv2runcommand(ui, repo, req, res, authedperm,
215 sentoutput = _httpv2runcommand(ui, repo, req, res, authedperm,
211 reqcommand, reactor, outstream,
216 reqcommand, reactor, outstream,
212 meta, issubsequent=seencommand)
217 meta, issubsequent=seencommand)
@@ -176,11 +176,14 b' Request to read-only command works out o'
176 s> Content-Type: application/mercurial-exp-framing-0006\r\n
176 s> Content-Type: application/mercurial-exp-framing-0006\r\n
177 s> Transfer-Encoding: chunked\r\n
177 s> Transfer-Encoding: chunked\r\n
178 s> \r\n
178 s> \r\n
179 s> 11\r\n
180 s> \t\x00\x00\x01\x00\x02\x01\x92Hidentity
181 s> \r\n
179 s> 13\r\n
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 s> \r\n
184 s> \r\n
182 s> 27\r\n
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 s> \r\n
187 s> \r\n
185 s> 8\r\n
188 s> 8\r\n
186 s> \x00\x00\x00\x01\x00\x02\x002
189 s> \x00\x00\x00\x01\x00\x02\x002
@@ -209,16 +212,21 b' Request to read-only command works out o'
209 s> Content-Type: application/mercurial-exp-framing-0006\r\n
212 s> Content-Type: application/mercurial-exp-framing-0006\r\n
210 s> Transfer-Encoding: chunked\r\n
213 s> Transfer-Encoding: chunked\r\n
211 s> \r\n
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 s> 13\r\n
220 s> 13\r\n
213 s> \x0b\x00\x00\x01\x00\x02\x011
221 s> \x0b\x00\x00\x01\x00\x02\x041
214 s> \xa1FstatusBok
222 s> \xa1FstatusBok
215 s> \r\n
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 s> 27\r\n
225 s> 27\r\n
218 s> \x1f\x00\x00\x01\x00\x02\x001
226 s> \x1f\x00\x00\x01\x00\x02\x041
219 s> X\x1dcustomreadonly bytes response
227 s> X\x1dcustomreadonly bytes response
220 s> \r\n
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 s> 8\r\n
230 s> 8\r\n
223 s> \x00\x00\x00\x01\x00\x02\x002
231 s> \x00\x00\x00\x01\x00\x02\x002
224 s> \r\n
232 s> \r\n
@@ -335,11 +343,14 b' Authorized request for valid read-write '
335 s> Content-Type: application/mercurial-exp-framing-0006\r\n
343 s> Content-Type: application/mercurial-exp-framing-0006\r\n
336 s> Transfer-Encoding: chunked\r\n
344 s> Transfer-Encoding: chunked\r\n
337 s> \r\n
345 s> \r\n
346 s> 11\r\n
347 s> \t\x00\x00\x01\x00\x02\x01\x92Hidentity
348 s> \r\n
338 s> 13\r\n
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 s> \r\n
351 s> \r\n
341 s> 27\r\n
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 s> \r\n
354 s> \r\n
344 s> 8\r\n
355 s> 8\r\n
345 s> \x00\x00\x00\x01\x00\x02\x002
356 s> \x00\x00\x00\x01\x00\x02\x002
@@ -464,11 +475,14 b' Multiple requests to regular command URL'
464 s> Content-Type: application/mercurial-exp-framing-0006\r\n
475 s> Content-Type: application/mercurial-exp-framing-0006\r\n
465 s> Transfer-Encoding: chunked\r\n
476 s> Transfer-Encoding: chunked\r\n
466 s> \r\n
477 s> \r\n
478 s> 11\r\n
479 s> \t\x00\x00\x01\x00\x02\x01\x92Hidentity
480 s> \r\n
467 s> 13\r\n
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 s> \r\n
483 s> \r\n
470 s> 27\r\n
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 s> \r\n
486 s> \r\n
473 s> 8\r\n
487 s> 8\r\n
474 s> \x00\x00\x00\x01\x00\x02\x002
488 s> \x00\x00\x00\x01\x00\x02\x002
@@ -503,20 +517,23 b' Multiple requests to "multirequest" URL '
503 s> Content-Type: application/mercurial-exp-framing-0006\r\n
517 s> Content-Type: application/mercurial-exp-framing-0006\r\n
504 s> Transfer-Encoding: chunked\r\n
518 s> Transfer-Encoding: chunked\r\n
505 s> \r\n
519 s> \r\n
520 s> 11\r\n
521 s> \t\x00\x00\x01\x00\x02\x01\x92Hidentity
522 s> \r\n
506 s> 13\r\n
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 s> \r\n
525 s> \r\n
509 s> 27\r\n
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 s> \r\n
528 s> \r\n
512 s> 8\r\n
529 s> 8\r\n
513 s> \x00\x00\x00\x01\x00\x02\x002
530 s> \x00\x00\x00\x01\x00\x02\x002
514 s> \r\n
531 s> \r\n
515 s> 13\r\n
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 s> \r\n
534 s> \r\n
518 s> 27\r\n
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 s> \r\n
537 s> \r\n
521 s> 8\r\n
538 s> 8\r\n
522 s> \x00\x00\x00\x03\x00\x02\x002
539 s> \x00\x00\x00\x03\x00\x02\x002
@@ -553,20 +570,23 b' Interleaved requests to "multirequest" a'
553 s> Content-Type: application/mercurial-exp-framing-0006\r\n
570 s> Content-Type: application/mercurial-exp-framing-0006\r\n
554 s> Transfer-Encoding: chunked\r\n
571 s> Transfer-Encoding: chunked\r\n
555 s> \r\n
572 s> \r\n
573 s> 11\r\n
574 s> \t\x00\x00\x03\x00\x02\x01\x92Hidentity
575 s> \r\n
556 s> 13\r\n
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 s> \r\n
578 s> \r\n
559 s> 28\r\n
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 s> \r\n
581 s> \r\n
562 s> 8\r\n
582 s> 8\r\n
563 s> \x00\x00\x00\x03\x00\x02\x002
583 s> \x00\x00\x00\x03\x00\x02\x002
564 s> \r\n
584 s> \r\n
565 s> 13\r\n
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 s> \r\n
587 s> \r\n
568 s> 9\r\n
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 s> \r\n
590 s> \r\n
571 s> 8\r\n
591 s> 8\r\n
572 s> \x00\x00\x00\x01\x00\x02\x002
592 s> \x00\x00\x00\x01\x00\x02\x002
@@ -641,16 +661,21 b' Defining an invalid content encoding res'
641 s> Content-Type: application/mercurial-exp-framing-0006\r\n
661 s> Content-Type: application/mercurial-exp-framing-0006\r\n
642 s> Transfer-Encoding: chunked\r\n
662 s> Transfer-Encoding: chunked\r\n
643 s> \r\n
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 s> 13\r\n
669 s> 13\r\n
645 s> \x0b\x00\x00\x01\x00\x02\x011
670 s> \x0b\x00\x00\x01\x00\x02\x041
646 s> \xa1FstatusBok
671 s> \xa1FstatusBok
647 s> \r\n
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 s> 1e\r\n
674 s> 1e\r\n
650 s> \x16\x00\x00\x01\x00\x02\x001
675 s> \x16\x00\x00\x01\x00\x02\x041
651 s> \x81T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
676 s> \x81T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
652 s> \r\n
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 s> 8\r\n
679 s> 8\r\n
655 s> \x00\x00\x00\x01\x00\x02\x002
680 s> \x00\x00\x00\x01\x00\x02\x002
656 s> \r\n
681 s> \r\n
@@ -685,22 +710,18 b' Defining an invalid content encoding res'
685 s> Content-Type: application/mercurial-exp-framing-0006\r\n
710 s> Content-Type: application/mercurial-exp-framing-0006\r\n
686 s> Transfer-Encoding: chunked\r\n
711 s> Transfer-Encoding: chunked\r\n
687 s> \r\n
712 s> \r\n
688 s> 13\r\n
713 s> 11\r\n
689 s> \x0b\x00\x00\x01\x00\x02\x011
714 s> \t\x00\x00\x01\x00\x02\x01\x92
690 s> \xa1FstatusBok
715 s> Hzstd-8mb
691 s> \r\n
716 s> \r\n
692 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
717 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
693 s> 1e\r\n
718 s> 25\r\n
694 s> \x16\x00\x00\x01\x00\x02\x001
719 s> \x1d\x00\x00\x01\x00\x02\x042
695 s> \x81T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
720 s> (\xb5/\xfd\x00P\xa4\x00\x00p\xa1FstatusBok\x81T\x00\x01\x00\tP\x02
696 s> \r\n
721 s> \r\n
697 received frame(size=22; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
722 received frame(size=29; request=1; stream=2; streamflags=encoded; type=command-response; flags=eos)
698 s> 8\r\n
699 s> \x00\x00\x00\x01\x00\x02\x002
700 s> \r\n
701 s> 0\r\n
723 s> 0\r\n
702 s> \r\n
724 s> \r\n
703 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
704 response: [
725 response: [
705 b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
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 s> Content-Type: application/mercurial-exp-framing-0006\r\n
333 s> Content-Type: application/mercurial-exp-framing-0006\r\n
334 s> Transfer-Encoding: chunked\r\n
334 s> Transfer-Encoding: chunked\r\n
335 s> \r\n
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 s> 13\r\n
341 s> 13\r\n
337 s> \x0b\x00\x00\x01\x00\x02\x011
342 s> \x0b\x00\x00\x01\x00\x02\x041
338 s> \xa1FstatusBok
343 s> \xa1FstatusBok
339 s> \r\n
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 s> 1e\r\n
346 s> 1e\r\n
342 s> \x16\x00\x00\x01\x00\x02\x001
347 s> \x16\x00\x00\x01\x00\x02\x041
343 s> \x81T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
348 s> \x81T\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
344 s> \r\n
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 s> 8\r\n
351 s> 8\r\n
347 s> \x00\x00\x00\x01\x00\x02\x002
352 s> \x00\x00\x00\x01\x00\x02\x002
348 s> \r\n
353 s> \r\n
@@ -453,16 +453,21 b' capabilities command returns expected in'
453 s> Content-Type: application/mercurial-exp-framing-0006\r\n
453 s> Content-Type: application/mercurial-exp-framing-0006\r\n
454 s> Transfer-Encoding: chunked\r\n
454 s> Transfer-Encoding: chunked\r\n
455 s> \r\n
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 s> 13\r\n
461 s> 13\r\n
457 s> \x0b\x00\x00\x01\x00\x02\x011
462 s> \x0b\x00\x00\x01\x00\x02\x041
458 s> \xa1FstatusBok
463 s> \xa1FstatusBok
459 s> \r\n
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 s> 508\r\n
466 s> 508\r\n
462 s> \x00\x05\x00\x01\x00\x02\x001
467 s> \x00\x05\x00\x01\x00\x02\x041
463 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
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 s> \r\n
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 s> 8\r\n
471 s> 8\r\n
467 s> \x00\x00\x00\x01\x00\x02\x002
472 s> \x00\x00\x00\x01\x00\x02\x002
468 s> \r\n
473 s> \r\n
@@ -86,16 +86,21 b' Redirect targets advertised when configu'
86 s> Content-Type: application/mercurial-exp-framing-0006\r\n
86 s> Content-Type: application/mercurial-exp-framing-0006\r\n
87 s> Transfer-Encoding: chunked\r\n
87 s> Transfer-Encoding: chunked\r\n
88 s> \r\n
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 s> 13\r\n
94 s> 13\r\n
90 s> \x0b\x00\x00\x01\x00\x02\x011
95 s> \x0b\x00\x00\x01\x00\x02\x041
91 s> \xa1FstatusBok
96 s> \xa1FstatusBok
92 s> \r\n
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 s> 588\r\n
99 s> 588\r\n
95 s> \x80\x05\x00\x01\x00\x02\x001
100 s> \x80\x05\x00\x01\x00\x02\x041
96 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/
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 s> \r\n
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 s> 8\r\n
104 s> 8\r\n
100 s> \x00\x00\x00\x01\x00\x02\x002
105 s> \x00\x00\x00\x01\x00\x02\x002
101 s> \r\n
106 s> \r\n
@@ -370,16 +375,21 b' Unknown protocol is filtered from compat'
370 s> Content-Type: application/mercurial-exp-framing-0006\r\n
375 s> Content-Type: application/mercurial-exp-framing-0006\r\n
371 s> Transfer-Encoding: chunked\r\n
376 s> Transfer-Encoding: chunked\r\n
372 s> \r\n
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 s> 13\r\n
383 s> 13\r\n
374 s> \x0b\x00\x00\x01\x00\x02\x011
384 s> \x0b\x00\x00\x01\x00\x02\x041
375 s> \xa1FstatusBok
385 s> \xa1FstatusBok
376 s> \r\n
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 s> 5a3\r\n
388 s> 5a3\r\n
379 s> \x9b\x05\x00\x01\x00\x02\x001
389 s> \x9b\x05\x00\x01\x00\x02\x041
380 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/
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 s> \r\n
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 s> 8\r\n
393 s> 8\r\n
384 s> \x00\x00\x00\x01\x00\x02\x002
394 s> \x00\x00\x00\x01\x00\x02\x002
385 s> \r\n
395 s> \r\n
@@ -660,16 +670,21 b' Missing SNI support filters targets that'
660 s> Content-Type: application/mercurial-exp-framing-0006\r\n
670 s> Content-Type: application/mercurial-exp-framing-0006\r\n
661 s> Transfer-Encoding: chunked\r\n
671 s> Transfer-Encoding: chunked\r\n
662 s> \r\n
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 s> 13\r\n
678 s> 13\r\n
664 s> \x0b\x00\x00\x01\x00\x02\x011
679 s> \x0b\x00\x00\x01\x00\x02\x041
665 s> \xa1FstatusBok
680 s> \xa1FstatusBok
666 s> \r\n
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 s> 57b\r\n
683 s> 57b\r\n
669 s> s\x05\x00\x01\x00\x02\x001
684 s> s\x05\x00\x01\x00\x02\x041
670 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/
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 s> \r\n
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 s> 8\r\n
688 s> 8\r\n
674 s> \x00\x00\x00\x01\x00\x02\x002
689 s> \x00\x00\x00\x01\x00\x02\x002
675 s> \r\n
690 s> \r\n
@@ -940,16 +955,21 b' Unknown tls value is filtered from compa'
940 s> Content-Type: application/mercurial-exp-framing-0006\r\n
955 s> Content-Type: application/mercurial-exp-framing-0006\r\n
941 s> Transfer-Encoding: chunked\r\n
956 s> Transfer-Encoding: chunked\r\n
942 s> \r\n
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 s> 13\r\n
963 s> 13\r\n
944 s> \x0b\x00\x00\x01\x00\x02\x011
964 s> \x0b\x00\x00\x01\x00\x02\x041
945 s> \xa1FstatusBok
965 s> \xa1FstatusBok
946 s> \r\n
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 s> 581\r\n
968 s> 581\r\n
949 s> y\x05\x00\x01\x00\x02\x001
969 s> y\x05\x00\x01\x00\x02\x041
950 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/
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 s> \r\n
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 s> 8\r\n
973 s> 8\r\n
954 s> \x00\x00\x00\x01\x00\x02\x002
974 s> \x00\x00\x00\x01\x00\x02\x002
955 s> \r\n
975 s> \r\n
@@ -45,11 +45,12 b' Test basic clone'
45 sending command known: {
45 sending command known: {
46 'nodes': []
46 'nodes': []
47 }
47 }
48 received frame(size=11; request=1; stream=2; streamflags=stream-begin; 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=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
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=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
52 received frame(size=1; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
53 received frame(size=1; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
53 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
54 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
54 sending 1 commands
55 sending 1 commands
55 sending command changesetdata: {
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=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
71 received frame(size=941; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
74 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
73 add changeset 3390ef850073
75 add changeset 3390ef850073
74 add changeset 4432d83626e8
76 add changeset 4432d83626e8
@@ -92,8 +94,9 b' Test basic clone'
92 ],
94 ],
93 'tree': ''
95 'tree': ''
94 }
96 }
95 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
97 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
96 received frame(size=992; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
100 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
98 sending 2 commands
101 sending 2 commands
99 sending command filedata: {
102 sending command filedata: {
@@ -122,11 +125,12 b' Test basic clone'
122 ],
125 ],
123 'path': 'b'
126 'path': 'b'
124 }
127 }
125 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
128 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
126 received frame(size=431; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
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)
132 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
129 received frame(size=431; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
133 received frame(size=431; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
130 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
134 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
131 updating the branch cache
135 updating the branch cache
132 new changesets 3390ef850073:caa2a465451d (3 drafts)
136 new changesets 3390ef850073:caa2a465451d (3 drafts)
@@ -173,8 +177,9 b' Cloning only a specific revision works'
173 sending command lookup: {
177 sending command lookup: {
174 'key': '4432d83626e8'
178 'key': '4432d83626e8'
175 }
179 }
176 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
180 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
177 received frame(size=21; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
183 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
179 query 1; heads
184 query 1; heads
180 sending 2 commands
185 sending 2 commands
@@ -182,11 +187,12 b' Cloning only a specific revision works'
182 sending command known: {
187 sending command known: {
183 'nodes': []
188 'nodes': []
184 }
189 }
185 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
190 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
186 received frame(size=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
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)
194 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
189 received frame(size=1; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
195 received frame(size=1; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
190 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
196 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
191 sending 1 commands
197 sending 1 commands
192 sending command changesetdata: {
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)
212 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
207 received frame(size=381; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
215 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
209 add changeset 3390ef850073
216 add changeset 3390ef850073
210 add changeset 4432d83626e8
217 add changeset 4432d83626e8
@@ -222,8 +229,9 b' Cloning only a specific revision works'
222 ],
229 ],
223 'tree': ''
230 'tree': ''
224 }
231 }
225 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
232 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
226 received frame(size=404; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
235 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
228 sending 2 commands
236 sending 2 commands
229 sending command filedata: {
237 sending command filedata: {
@@ -249,11 +257,12 b' Cloning only a specific revision works'
249 ],
257 ],
250 'path': 'b'
258 'path': 'b'
251 }
259 }
252 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
260 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
253 received frame(size=277; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
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)
264 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
256 received frame(size=123; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
265 received frame(size=123; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
257 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
266 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
258 updating the branch cache
267 updating the branch cache
259 new changesets 3390ef850073:4432d83626e8
268 new changesets 3390ef850073:4432d83626e8
@@ -286,11 +295,12 b' Incremental pull works'
286 'D2\xd86&\xe8\xa9\x86U\xf0b\xec\x1f*C\xb0\x7f\x7f\xbb\xb0'
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)
298 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
290 received frame(size=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
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)
302 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
293 received frame(size=2; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
303 received frame(size=2; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
294 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
304 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
295 searching for changes
305 searching for changes
296 all local heads known remotely
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)
325 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
316 received frame(size=613; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
328 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
318 add changeset cd2534766bec
329 add changeset cd2534766bec
319 add changeset e96ae20f4188
330 add changeset e96ae20f4188
@@ -333,8 +344,9 b' Incremental pull works'
333 ],
344 ],
334 'tree': ''
345 'tree': ''
335 }
346 }
336 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
347 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
337 received frame(size=601; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
350 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
339 sending 2 commands
351 sending 2 commands
340 sending command filedata: {
352 sending command filedata: {
@@ -362,11 +374,12 b' Incremental pull works'
362 ],
374 ],
363 'path': 'b'
375 'path': 'b'
364 }
376 }
365 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
377 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
366 received frame(size=277; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
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)
381 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
369 received frame(size=431; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
382 received frame(size=431; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
370 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
383 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
371 updating the branch cache
384 updating the branch cache
372 new changesets cd2534766bec:caa2a465451d (3 drafts)
385 new changesets cd2534766bec:caa2a465451d (3 drafts)
@@ -409,11 +422,12 b' Phase-only update works'
409 '\xca\xa2\xa4eE\x1d\xd1\xfa\xcd\xa0\xf5\xb1#\x12\xc3UXA\x88\xa1'
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)
425 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
413 received frame(size=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
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)
429 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
416 received frame(size=3; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
430 received frame(size=3; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
417 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
431 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
418 searching for changes
432 searching for changes
419 all remote heads known locally
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)
453 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
440 received frame(size=92; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
456 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
442 checking for updated bookmarks
457 checking for updated bookmarks
443 2 local changesets published
458 2 local changesets published
@@ -472,11 +487,12 b' Bookmarks are transferred on clone'
472 sending command known: {
487 sending command known: {
473 'nodes': []
488 'nodes': []
474 }
489 }
475 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
490 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
476 received frame(size=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
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)
494 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
479 received frame(size=1; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
495 received frame(size=1; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
480 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
496 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
481 sending 1 commands
497 sending 1 commands
482 sending command changesetdata: {
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)
513 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
498 received frame(size=979; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
516 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
500 add changeset 3390ef850073
517 add changeset 3390ef850073
501 add changeset 4432d83626e8
518 add changeset 4432d83626e8
@@ -521,8 +538,9 b' Bookmarks are transferred on clone'
521 ],
538 ],
522 'tree': ''
539 'tree': ''
523 }
540 }
524 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
541 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
525 received frame(size=992; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
544 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
527 sending 2 commands
545 sending 2 commands
528 sending command filedata: {
546 sending command filedata: {
@@ -551,11 +569,12 b' Bookmarks are transferred on clone'
551 ],
569 ],
552 'path': 'b'
570 'path': 'b'
553 }
571 }
554 received frame(size=11; request=1; stream=2; streamflags=stream-begin; type=command-response; flags=continuation)
572 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
555 received frame(size=431; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
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)
576 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
558 received frame(size=431; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
577 received frame(size=431; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
559 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
578 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
560 updating the branch cache
579 updating the branch cache
561 new changesets 3390ef850073:caa2a465451d (1 drafts)
580 new changesets 3390ef850073:caa2a465451d (1 drafts)
@@ -583,11 +602,12 b' Server-side bookmark moves are reflected'
583 '\xca\xa2\xa4eE\x1d\xd1\xfa\xcd\xa0\xf5\xb1#\x12\xc3UXA\x88\xa1'
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)
605 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
587 received frame(size=43; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
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)
609 received frame(size=11; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
590 received frame(size=3; request=3; stream=2; streamflags=; type=command-response; flags=continuation)
610 received frame(size=3; request=3; stream=2; streamflags=encoded; type=command-response; flags=continuation)
591 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
611 received frame(size=0; request=3; stream=2; streamflags=; type=command-response; flags=eos)
592 searching for changes
612 searching for changes
593 all remote heads known locally
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)
633 received frame(size=9; request=1; stream=2; streamflags=stream-begin; type=stream-settings; flags=eos)
614 received frame(size=144; request=1; stream=2; streamflags=; type=command-response; flags=continuation)
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 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
636 received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
616 checking for updated bookmarks
637 checking for updated bookmarks
617 updating bookmark book-1
638 updating bookmark book-1
@@ -371,8 +371,9 b' class ServerReactorTests(unittest.TestCa'
371 outstream, 1, [b'response'])
371 outstream, 1, [b'response'])
372 self.assertaction(result, b'sendframes')
372 self.assertaction(result, b'sendframes')
373 self.assertframesequal(result[1][b'framegen'], [
373 self.assertframesequal(result[1][b'framegen'], [
374 b'1 2 stream-begin command-response continuation %s' % OK,
374 b'1 2 stream-begin stream-settings eos cbor:b"identity"',
375 b'1 2 0 command-response continuation cbor:b"response"',
375 b'1 2 encoded command-response continuation %s' % OK,
376 b'1 2 encoded command-response continuation cbor:b"response"',
376 b'1 2 0 command-response eos ',
377 b'1 2 0 command-response eos ',
377 ])
378 ])
378
379
@@ -390,10 +391,11 b' class ServerReactorTests(unittest.TestCa'
390 outstream, 1, [first + second])
391 outstream, 1, [first + second])
391 self.assertaction(result, b'sendframes')
392 self.assertaction(result, b'sendframes')
392 self.assertframesequal(result[1][b'framegen'], [
393 self.assertframesequal(result[1][b'framegen'], [
393 b'1 2 stream-begin command-response continuation %s' % OK,
394 b'1 2 stream-begin stream-settings eos cbor:b"identity"',
394 b'1 2 0 command-response continuation Y\x80d',
395 b'1 2 encoded command-response continuation %s' % OK,
395 b'1 2 0 command-response continuation %s' % first,
396 b'1 2 encoded command-response continuation Y\x80d',
396 b'1 2 0 command-response continuation %s' % second,
397 b'1 2 encoded command-response continuation %s' % first,
398 b'1 2 encoded command-response continuation %s' % second,
397 b'1 2 0 command-response eos '
399 b'1 2 0 command-response eos '
398 ])
400 ])
399
401
@@ -427,8 +429,9 b' class ServerReactorTests(unittest.TestCa'
427 result = reactor.oninputeof()
429 result = reactor.oninputeof()
428 self.assertaction(result, b'sendframes')
430 self.assertaction(result, b'sendframes')
429 self.assertframesequal(result[1][b'framegen'], [
431 self.assertframesequal(result[1][b'framegen'], [
430 b'1 2 stream-begin command-response continuation %s' % OK,
432 b'1 2 stream-begin stream-settings eos cbor:b"identity"',
431 b'1 2 0 command-response continuation cbor:b"response"',
433 b'1 2 encoded command-response continuation %s' % OK,
434 b'1 2 encoded command-response continuation cbor:b"response"',
432 b'1 2 0 command-response eos ',
435 b'1 2 0 command-response eos ',
433 ])
436 ])
434
437
@@ -448,11 +451,12 b' class ServerReactorTests(unittest.TestCa'
448 result = reactor.oninputeof()
451 result = reactor.oninputeof()
449 self.assertaction(result, b'sendframes')
452 self.assertaction(result, b'sendframes')
450 self.assertframesequal(result[1][b'framegen'], [
453 self.assertframesequal(result[1][b'framegen'], [
451 b'1 2 stream-begin command-response continuation %s' % OK,
454 b'1 2 stream-begin stream-settings eos cbor:b"identity"',
452 b'1 2 0 command-response continuation cbor:b"response1"',
455 b'1 2 encoded command-response continuation %s' % OK,
456 b'1 2 encoded command-response continuation cbor:b"response1"',
453 b'1 2 0 command-response eos ',
457 b'1 2 0 command-response eos ',
454 b'3 2 0 command-response continuation %s' % OK,
458 b'3 2 encoded command-response continuation %s' % OK,
455 b'3 2 0 command-response continuation cbor:b"response2"',
459 b'3 2 encoded command-response continuation cbor:b"response2"',
456 b'3 2 0 command-response eos ',
460 b'3 2 0 command-response eos ',
457 ])
461 ])
458
462
@@ -472,14 +476,15 b' class ServerReactorTests(unittest.TestCa'
472 result = reactor.oninputeof()
476 result = reactor.oninputeof()
473 self.assertaction(result, b'sendframes')
477 self.assertaction(result, b'sendframes')
474 self.assertframesequal(result[1][b'framegen'], [
478 self.assertframesequal(result[1][b'framegen'], [
475 b'3 2 stream-begin command-response continuation %s' % OK,
479 b'3 2 stream-begin stream-settings eos cbor:b"identity"',
476 b'3 2 0 command-response continuation cbor:b"response3"',
480 b'3 2 encoded command-response continuation %s' % OK,
481 b'3 2 encoded command-response continuation cbor:b"response3"',
477 b'3 2 0 command-response eos ',
482 b'3 2 0 command-response eos ',
478 b'1 2 0 command-response continuation %s' % OK,
483 b'1 2 encoded command-response continuation %s' % OK,
479 b'1 2 0 command-response continuation cbor:b"response1"',
484 b'1 2 encoded command-response continuation cbor:b"response1"',
480 b'1 2 0 command-response eos ',
485 b'1 2 0 command-response eos ',
481 b'5 2 0 command-response continuation %s' % OK,
486 b'5 2 encoded command-response continuation %s' % OK,
482 b'5 2 0 command-response continuation cbor:b"response5"',
487 b'5 2 encoded command-response continuation cbor:b"response5"',
483 b'5 2 0 command-response eos ',
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