[PATCH 7 of 7 V3] revbranchcache: advertise and use 'rbc' exchange capability

Feld Boris boris.feld at octobus.net
Fri Mar 16 07:30:21 EDT 2018


I have resend a V4 because the stack root parent has been rebased.


On 15/03/2018 15:30, Boris Feld wrote:
> # HG changeset patch
> # User Boris Feld <boris.feld at octobus.net>
> # Date 1516284622 -3600
> #      Thu Jan 18 15:10:22 2018 +0100
> # Node ID f24dca1867f549449454ba789da0bd5a88a6b2f8
> # Parent  de3ebe1992b795f0be17c922b1bc6c8c7373d06e
> # EXP-Topic wire-rbc
> # Available At https://bitbucket.org/octobus/mercurial-devel/
> #              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r f24dca1867f5
> revbranchcache: advertise and use 'rbc' exchange capability
>
> The feature is now advertised and use.
>
> Updating the branchmap cache can be very expensive (up to minutes on large
> repository) and fetching revision branch data is about 80% of that. Exchanging
> the rev branch cache over the wire really help to recover from branch map
> invalidation.
>
> (There is a good chance other in flight chance would conflict on
> test-http-bad-server.t and other. So here is a small note to help update that
> test again: capabilities=19bytes, part-107bytes)
>
> diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py
> --- a/mercurial/bundle2.py
> +++ b/mercurial/bundle2.py
> @@ -1492,6 +1492,7 @@ capabilities = {'HG20': (),
>                   'digests': tuple(sorted(util.DIGESTS.keys())),
>                   'remote-changegroup': ('http', 'https'),
>                   'hgtagsfnodes': (),
> +                'rev-branch-cache': (),
>                   'phases': ('heads',),
>                   'stream': ('v2',),
>                  }
> diff --git a/tests/common-pattern.py b/tests/common-pattern.py
> --- a/tests/common-pattern.py
> +++ b/tests/common-pattern.py
> @@ -22,6 +22,7 @@ substitutions = [
>        br'phases%253Dheads%250A'
>        br'pushkey%250A'
>        br'remote-changegroup%253Dhttp%252Chttps%250A'
> +     br'rev-branch-cache%250A'
>        br'stream%253Dv2',
>        # (the replacement patterns)
>        br'$USUAL_BUNDLE_CAPS$'
> @@ -50,6 +51,7 @@ substitutions = [
>        br'phases%3Dheads%0A'
>        br'pushkey%0A'
>        br'remote-changegroup%3Dhttp%2Chttps%0A'
> +     br'rev-branch-cache%0A'
>        br'stream%3Dv2',
>        # (replacement patterns)
>        br'$USUAL_BUNDLE2_CAPS$'
> @@ -64,7 +66,8 @@ substitutions = [
>        br'listkeys%0A'
>        br'phases%3Dheads%0A'
>        br'pushkey%0A'
> -     br'remote-changegroup%3Dhttp%2Chttps',
> +     br'remote-changegroup%3Dhttp%2Chttps%0A'
> +     br'rev-branch-cache',
>        # (replacement patterns)
>        br'$USUAL_BUNDLE2_CAPS_SERVER$'
>        ),
> diff --git a/tests/test-acl.t b/tests/test-acl.t
> --- a/tests/test-acl.t
> +++ b/tests/test-acl.t
> @@ -107,14 +107,14 @@ Extension disabled for lack of a hook
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -170,14 +170,14 @@ Extension disabled for lack of acl.sourc
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -236,14 +236,14 @@ No [acl.allow]/[acl.deny]
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -312,14 +312,14 @@ Empty [acl.allow]
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -380,14 +380,14 @@ fred is allowed inside foo/
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -453,14 +453,14 @@ Empty [acl.deny]
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -523,14 +523,14 @@ fred is allowed inside foo/, but not foo
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -598,14 +598,14 @@ fred is allowed inside foo/, but not foo
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -670,14 +670,14 @@ fred is allowed inside foo/, but not foo
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -744,14 +744,14 @@ barney is allowed everywhere
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -827,14 +827,14 @@ wilma can change files with a .txt exten
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -908,14 +908,14 @@ file specified by acl.config does not ex
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -984,14 +984,14 @@ betty is allowed inside foo/ by a acl.co
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -1071,14 +1071,14 @@ acl.config can set only [acl.allow]/[acl
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -1158,14 +1158,14 @@ fred is always allowed
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -1241,14 +1241,14 @@ no one is allowed inside foo/Bar/
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -1321,14 +1321,14 @@ OS-level groups
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -1405,14 +1405,14 @@ OS-level groups
>     f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>     911600dab2ae7a9baff75958b84fe606851ce955
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-part: "check:heads" supported
> @@ -1526,14 +1526,14 @@ No branch acls specified
>     911600dab2ae7a9baff75958b84fe606851ce955
>     e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 48 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 48 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 48
>     bundle2-input-part: "check:heads" supported
> @@ -1611,14 +1611,14 @@ Branch acl deny test
>     911600dab2ae7a9baff75958b84fe606851ce955
>     e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 48 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 48 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 48
>     bundle2-input-part: "check:heads" supported
> @@ -1689,14 +1689,14 @@ Branch acl empty allow test
>     911600dab2ae7a9baff75958b84fe606851ce955
>     e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 48 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 48 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 48
>     bundle2-input-part: "check:heads" supported
> @@ -1763,14 +1763,14 @@ Branch acl allow other
>     911600dab2ae7a9baff75958b84fe606851ce955
>     e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 48 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 48 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 48
>     bundle2-input-part: "check:heads" supported
> @@ -1831,14 +1831,14 @@ Branch acl allow other
>     911600dab2ae7a9baff75958b84fe606851ce955
>     e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 48 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 48 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 48
>     bundle2-input-part: "check:heads" supported
> @@ -1921,14 +1921,14 @@ push foobar into the remote
>     911600dab2ae7a9baff75958b84fe606851ce955
>     e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 48 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 48 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 48
>     bundle2-input-part: "check:heads" supported
> @@ -2010,14 +2010,14 @@ Branch acl conflicting deny
>     911600dab2ae7a9baff75958b84fe606851ce955
>     e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 48 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 48 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 48
>     bundle2-input-part: "check:heads" supported
> @@ -2083,14 +2083,14 @@ User 'astro' must not be denied
>     911600dab2ae7a9baff75958b84fe606851ce955
>     e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 48 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 48 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 48
>     bundle2-input-part: "check:heads" supported
> @@ -2166,14 +2166,14 @@ Non-astro users must be denied
>     911600dab2ae7a9baff75958b84fe606851ce955
>     e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 48 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 48 bytes payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 188
> +  bundle2-input-part: total payload size 205
>     bundle2-input-part: "check:phases" supported
>     bundle2-input-part: total payload size 48
>     bundle2-input-part: "check:heads" supported
> diff --git a/tests/test-bookmarks-pushpull.t b/tests/test-bookmarks-pushpull.t
> --- a/tests/test-bookmarks-pushpull.t
> +++ b/tests/test-bookmarks-pushpull.t
> @@ -129,10 +129,10 @@ delete a remote bookmark
>     bundle2-output: bundle parameter:
>     bundle2-output: start of parts
>     bundle2-output: bundle part: "replycaps"
> -  bundle2-output-part: "replycaps" 205 bytes payload
> +  bundle2-output-part: "replycaps" 222 bytes payload
>     bundle2-output: part 0: "REPLYCAPS"
>     bundle2-output: header chunk size: 16
> -  bundle2-output: payload chunk size: 205
> +  bundle2-output: payload chunk size: 222
>     bundle2-output: closing payload chunk
>     bundle2-output: bundle part: "check:bookmarks"
>     bundle2-output-part: "check:bookmarks" 23 bytes payload
> @@ -162,9 +162,9 @@ delete a remote bookmark
>     bundle2-input: part parameters: 0
>     bundle2-input: found a handler for part replycaps
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input: payload chunk size: 205
> +  bundle2-input: payload chunk size: 222
>     bundle2-input: payload chunk size: 0
> -  bundle2-input-part: total payload size 205
> +  bundle2-input-part: total payload size 222
>     bundle2-input: part header size: 22
>     bundle2-input: part type: "CHECK:BOOKMARKS"
>     bundle2-input: part id: "1"
> @@ -241,10 +241,10 @@ delete a remote bookmark
>     bundle2-output: bundle parameter:
>     bundle2-output: start of parts
>     bundle2-output: bundle part: "replycaps"
> -  bundle2-output-part: "replycaps" 205 bytes payload
> +  bundle2-output-part: "replycaps" 222 bytes payload
>     bundle2-output: part 0: "REPLYCAPS"
>     bundle2-output: header chunk size: 16
> -  bundle2-output: payload chunk size: 205
> +  bundle2-output: payload chunk size: 222
>     bundle2-output: closing payload chunk
>     bundle2-output: bundle part: "check:bookmarks"
>     bundle2-output-part: "check:bookmarks" 23 bytes payload
> @@ -275,9 +275,9 @@ delete a remote bookmark
>     bundle2-input: part parameters: 0
>     bundle2-input: found a handler for part replycaps
>     bundle2-input-part: "replycaps" supported
> -  bundle2-input: payload chunk size: 205
> +  bundle2-input: payload chunk size: 222
>     bundle2-input: payload chunk size: 0
> -  bundle2-input-part: total payload size 205
> +  bundle2-input-part: total payload size 222
>     bundle2-input: part header size: 22
>     bundle2-input: part type: "CHECK:BOOKMARKS"
>     bundle2-input: part id: "1"
> diff --git a/tests/test-clone-uncompressed.t b/tests/test-clone-uncompressed.t
> --- a/tests/test-clone-uncompressed.t
> +++ b/tests/test-clone-uncompressed.t
> @@ -71,6 +71,7 @@ Cannot stream clone when server.uncompre
>       remote-changegroup
>         http
>         https
> +    rev-branch-cache
>   
>     $ hg clone --stream -U http://localhost:$HGPORT server-disabled
>     warning: stream clone requested but server has them disabled
> @@ -136,6 +137,7 @@ Cannot stream clone when server.uncompre
>       remote-changegroup
>         http
>         https
> +    rev-branch-cache
>   
>     $ hg clone --stream -U http://localhost:$HGPORT server-disabled
>     warning: stream clone requested but server has them disabled
> diff --git a/tests/test-debugcommands.t b/tests/test-debugcommands.t
> --- a/tests/test-debugcommands.t
> +++ b/tests/test-debugcommands.t
> @@ -379,6 +379,7 @@ Test debugcapabilities command:
>       remote-changegroup
>         http
>         https
> +    rev-branch-cache
>       stream
>         v2
>   
> @@ -397,7 +398,7 @@ Test debugpeer
>     devel-peer-request: between
>     devel-peer-request:   pairs: 81 bytes
>     sending between command
> -  remote: 384
> +  remote: 403
>     remote: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     remote: 1
>     url: ssh://user@dummy/debugrevlog
> diff --git a/tests/test-http-bad-server.t b/tests/test-http-bad-server.t
> --- a/tests/test-http-bad-server.t
> +++ b/tests/test-http-bad-server.t
> @@ -118,9 +118,9 @@ Failure on subsequent HTTP request on th
>     write(23) -> Server: badhttpserver\r\n
>     write(37) -> Date: $HTTP_DATE$\r\n
>     write(41) -> Content-Type: application/mercurial-0.1\r\n
> -  write(21) -> Content-Length: 417\r\n
> +  write(21) -> Content-Length: 436\r\n
>     write(2) -> \r\n
> -  write(417) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
> +  write(436) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
>     readline(4? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
>     readline(1? from -1) -> (1?) Accept-Encoding* (glob)
>     read limit reached; closing socket
> @@ -159,9 +159,9 @@ Failure to read getbundle HTTP request
>     write(23) -> Server: badhttpserver\r\n
>     write(37) -> Date: $HTTP_DATE$\r\n
>     write(41) -> Content-Type: application/mercurial-0.1\r\n
> -  write(21) -> Content-Length: 417\r\n
> +  write(21) -> Content-Length: 436\r\n
>     write(2) -> \r\n
> -  write(417) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
> +  write(436) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
>     readline(13? from 65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n (glob)
>     readline(1?? from -1) -> (27) Accept-Encoding: identity\r\n (glob)
>     readline(8? from -1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n (glob)
> @@ -216,9 +216,9 @@ Now do a variation using POST to send ar
>     write(23) -> Server: badhttpserver\r\n
>     write(37) -> Date: $HTTP_DATE$\r\n
>     write(41) -> Content-Type: application/mercurial-0.1\r\n
> -  write(21) -> Content-Length: 430\r\n
> +  write(21) -> Content-Length: 449\r\n
>     write(2) -> \r\n
> -  write(430) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httppostargs httpmediatype=0.1rx,0.1tx,0.2tx compression=none
> +  write(449) -> lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httppostargs httpmediatype=0.1rx,0.1tx,0.2tx compression=none
>     readline\(14[67] from 65537\) -> \(2[67]\) POST /\?cmd=batch HTTP/1.1\\r\\n (re)
>     readline\(1(19|20) from -1\) -> \(27\) Accept-Encoding: identity\\r\\n (re)
>     readline(9? from -1) -> (41) content-type: application/mercurial-0.1\r\n (glob)
> @@ -275,7 +275,7 @@ Server sends an incomplete capabilities
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> -  abort: HTTP request error (incomplete response; expected 397 bytes got 20)
> +  abort: HTTP request error (incomplete response; expected 416 bytes got 20)
>     (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator)
>     [255]
>   
> @@ -292,16 +292,16 @@ Server sends an incomplete capabilities
>     write(23 from 23) -> (121) Server: badhttpserver\r\n
>     write(37 from 37) -> (84) Date: $HTTP_DATE$\r\n
>     write(41 from 41) -> (43) Content-Type: application/mercurial-0.1\r\n
> -  write(21 from 21) -> (22) Content-Length: 417\r\n
> +  write(21 from 21) -> (22) Content-Length: 436\r\n
>     write(2 from 2) -> (20) \r\n
> -  write(20 from 417) -> (0) lookup branchmap pus
> +  write(20 from 436) -> (0) lookup branchmap pus
>     write limit reached; closing socket
>   
>     $ rm -f error.log
>   
>   Server sends incomplete headers for batch request
>   
> -  $ hg serve --config badserver.closeaftersendbytes=695 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=714 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>   TODO this output is horrible
> @@ -323,13 +323,13 @@ TODO this output is horrible
>     readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
>     readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
>     readline(-1) -> (2) \r\n
> -  write(36 from 36) -> (659) HTTP/1.1 200 Script output follows\r\n
> -  write(23 from 23) -> (636) Server: badhttpserver\r\n
> -  write(37 from 37) -> (599) Date: $HTTP_DATE$\r\n
> -  write(41 from 41) -> (558) Content-Type: application/mercurial-0.1\r\n
> -  write(21 from 21) -> (537) Content-Length: 417\r\n
> -  write(2 from 2) -> (535) \r\n
> -  write(417 from 417) -> (118) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
> +  write(36 from 36) -> (678) HTTP/1.1 200 Script output follows\r\n
> +  write(23 from 23) -> (655) Server: badhttpserver\r\n
> +  write(37 from 37) -> (618) Date: $HTTP_DATE$\r\n
> +  write(41 from 41) -> (577) Content-Type: application/mercurial-0.1\r\n
> +  write(21 from 21) -> (556) Content-Length: 436\r\n
> +  write(2 from 2) -> (554) \r\n
> +  write(436 from 436) -> (118) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
>     readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
>     readline(-1) -> (27) Accept-Encoding: identity\r\n
>     readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
> @@ -350,7 +350,7 @@ TODO this output is horrible
>   
>   Server sends an incomplete HTTP response body to batch request
>   
> -  $ hg serve --config badserver.closeaftersendbytes=760 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=779 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>   TODO client spews a stack due to uncaught ValueError in batch.results()
> @@ -371,13 +371,13 @@ TODO client spews a stack due to uncaugh
>     readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
>     readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
>     readline(-1) -> (2) \r\n
> -  write(36 from 36) -> (724) HTTP/1.1 200 Script output follows\r\n
> -  write(23 from 23) -> (701) Server: badhttpserver\r\n
> -  write(37 from 37) -> (664) Date: $HTTP_DATE$\r\n
> -  write(41 from 41) -> (623) Content-Type: application/mercurial-0.1\r\n
> -  write(21 from 21) -> (602) Content-Length: 417\r\n
> -  write(2 from 2) -> (600) \r\n
> -  write(417 from 417) -> (183) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
> +  write(36 from 36) -> (743) HTTP/1.1 200 Script output follows\r\n
> +  write(23 from 23) -> (720) Server: badhttpserver\r\n
> +  write(37 from 37) -> (683) Date: $HTTP_DATE$\r\n
> +  write(41 from 41) -> (642) Content-Type: application/mercurial-0.1\r\n
> +  write(21 from 21) -> (621) Content-Length: 436\r\n
> +  write(2 from 2) -> (619) \r\n
> +  write(436 from 436) -> (183) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
>     readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
>     readline(-1) -> (27) Accept-Encoding: identity\r\n
>     readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
> @@ -400,7 +400,7 @@ TODO client spews a stack due to uncaugh
>   
>   Server sends incomplete headers for getbundle response
>   
> -  $ hg serve --config badserver.closeaftersendbytes=907 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=926 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>   TODO this output is terrible
> @@ -423,13 +423,13 @@ TODO this output is terrible
>     readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
>     readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
>     readline(-1) -> (2) \r\n
> -  write(36 from 36) -> (871) HTTP/1.1 200 Script output follows\r\n
> -  write(23 from 23) -> (848) Server: badhttpserver\r\n
> -  write(37 from 37) -> (811) Date: $HTTP_DATE$\r\n
> -  write(41 from 41) -> (770) Content-Type: application/mercurial-0.1\r\n
> -  write(21 from 21) -> (749) Content-Length: 417\r\n
> -  write(2 from 2) -> (747) \r\n
> -  write(417 from 417) -> (330) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
> +  write(36 from 36) -> (890) HTTP/1.1 200 Script output follows\r\n
> +  write(23 from 23) -> (867) Server: badhttpserver\r\n
> +  write(37 from 37) -> (830) Date: $HTTP_DATE$\r\n
> +  write(41 from 41) -> (789) Content-Type: application/mercurial-0.1\r\n
> +  write(21 from 21) -> (768) Content-Length: 436\r\n
> +  write(2 from 2) -> (766) \r\n
> +  write(436 from 436) -> (330) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
>     readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
>     readline(-1) -> (27) Accept-Encoding: identity\r\n
>     readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
> @@ -449,7 +449,7 @@ TODO this output is terrible
>     readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
>     readline(-1) -> (27) Accept-Encoding: identity\r\n
>     readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
> -  readline(-1) -> (440) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
> +  readline(-1) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
>     readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
>     readline(-1) -> (35) accept: application/mercurial-0.1\r\n
>     readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
> @@ -466,7 +466,7 @@ TODO this output is terrible
>   
>   Server sends empty HTTP body for getbundle
>   
> -  $ hg serve --config badserver.closeaftersendbytes=945 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=964 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -484,13 +484,13 @@ Server sends empty HTTP body for getbund
>     readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
>     readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
>     readline(-1) -> (2) \r\n
> -  write(36 from 36) -> (909) HTTP/1.1 200 Script output follows\r\n
> -  write(23 from 23) -> (886) Server: badhttpserver\r\n
> -  write(37 from 37) -> (849) Date: $HTTP_DATE$\r\n
> -  write(41 from 41) -> (808) Content-Type: application/mercurial-0.1\r\n
> -  write(21 from 21) -> (787) Content-Length: 417\r\n
> -  write(2 from 2) -> (785) \r\n
> -  write(417 from 417) -> (368) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
> +  write(36 from 36) -> (928) HTTP/1.1 200 Script output follows\r\n
> +  write(23 from 23) -> (905) Server: badhttpserver\r\n
> +  write(37 from 37) -> (868) Date: $HTTP_DATE$\r\n
> +  write(41 from 41) -> (827) Content-Type: application/mercurial-0.1\r\n
> +  write(21 from 21) -> (806) Content-Length: 436\r\n
> +  write(2 from 2) -> (804) \r\n
> +  write(436 from 436) -> (368) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
>     readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
>     readline(-1) -> (27) Accept-Encoding: identity\r\n
>     readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
> @@ -510,7 +510,7 @@ Server sends empty HTTP body for getbund
>     readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
>     readline(-1) -> (27) Accept-Encoding: identity\r\n
>     readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
> -  readline(-1) -> (440) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
> +  readline(-1) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
>     readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
>     readline(-1) -> (35) accept: application/mercurial-0.1\r\n
>     readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
> @@ -529,7 +529,7 @@ Server sends empty HTTP body for getbund
>   
>   Server sends partial compression string
>   
> -  $ hg serve --config badserver.closeaftersendbytes=969 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=988 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -547,13 +547,13 @@ Server sends partial compression string
>     readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
>     readline(-1) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n
>     readline(-1) -> (2) \r\n
> -  write(36 from 36) -> (933) HTTP/1.1 200 Script output follows\r\n
> -  write(23 from 23) -> (910) Server: badhttpserver\r\n
> -  write(37 from 37) -> (873) Date: $HTTP_DATE$\r\n
> -  write(41 from 41) -> (832) Content-Type: application/mercurial-0.1\r\n
> -  write(21 from 21) -> (811) Content-Length: 417\r\n
> -  write(2 from 2) -> (809) \r\n
> -  write(417 from 417) -> (392) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
> +  write(36 from 36) -> (952) HTTP/1.1 200 Script output follows\r\n
> +  write(23 from 23) -> (929) Server: badhttpserver\r\n
> +  write(37 from 37) -> (892) Date: $HTTP_DATE$\r\n
> +  write(41 from 41) -> (851) Content-Type: application/mercurial-0.1\r\n
> +  write(21 from 21) -> (830) Content-Length: 436\r\n
> +  write(2 from 2) -> (828) \r\n
> +  write(436 from 436) -> (392) lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx compression=none
>     readline(65537) -> (26) GET /?cmd=batch HTTP/1.1\r\n
>     readline(-1) -> (27) Accept-Encoding: identity\r\n
>     readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
> @@ -573,7 +573,7 @@ Server sends partial compression string
>     readline(65537) -> (30) GET /?cmd=getbundle HTTP/1.1\r\n
>     readline(-1) -> (27) Accept-Encoding: identity\r\n
>     readline(-1) -> (29) vary: X-HgArg-1,X-HgProto-1\r\n
> -  readline(-1) -> (440) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
> +  readline(-1) -> (461) x-hgarg-1: bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=96ee1d7354c4ad7372047672c36a1f561e3a6a4c&listkeys=phases%2Cbookmarks\r\n
>     readline(-1) -> (48) x-hgproto-1: 0.1 0.2 comp=$USUAL_COMPRESSIONS$\r\n
>     readline(-1) -> (35) accept: application/mercurial-0.1\r\n
>     readline(-1) -> (2?) host: localhost:$HGPORT\r\n (glob)
> @@ -595,7 +595,7 @@ Server sends partial compression string
>   
>   Server sends partial bundle2 header magic
>   
> -  $ hg serve --config badserver.closeaftersendbytes=966 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=985 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -619,7 +619,7 @@ Server sends partial bundle2 header magi
>   
>   Server sends incomplete bundle2 stream params length
>   
> -  $ hg serve --config badserver.closeaftersendbytes=975 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=994 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -644,7 +644,7 @@ Server sends incomplete bundle2 stream p
>   
>   Servers stops after bundle2 stream params header
>   
> -  $ hg serve --config badserver.closeaftersendbytes=978 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=997 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -669,7 +669,7 @@ Servers stops after bundle2 stream param
>   
>   Server stops sending after bundle2 part header length
>   
> -  $ hg serve --config badserver.closeaftersendbytes=987 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=1006 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -695,7 +695,7 @@ Server stops sending after bundle2 part
>   
>   Server stops sending after bundle2 part header
>   
> -  $ hg serve --config badserver.closeaftersendbytes=1034 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=1053 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -725,7 +725,7 @@ Server stops sending after bundle2 part
>   
>   Server stops after bundle2 part payload chunk size
>   
> -  $ hg serve --config badserver.closeaftersendbytes=1055 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=1074 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -756,7 +756,7 @@ Server stops after bundle2 part payload
>   
>   Server stops sending in middle of bundle2 payload chunk
>   
> -  $ hg serve --config badserver.closeaftersendbytes=1516 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=1535 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -788,7 +788,7 @@ Server stops sending in middle of bundle
>   
>   Server stops sending after 0 length payload chunk size
>   
> -  $ hg serve --config badserver.closeaftersendbytes=1547 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=1566 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -825,7 +825,8 @@ Server stops sending after 0 length payl
>   Server stops sending after 0 part bundle part header (indicating end of bundle2 payload)
>   This is before the 0 size chunked transfer part that signals end of HTTP response.
>   
> -  $ hg serve --config badserver.closeaftersendbytes=1722 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +#  $ hg serve --config badserver.closeaftersendbytes=1741 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=1848 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -841,24 +842,24 @@ This is before the 0 size chunked transf
>     $ killdaemons.py $DAEMON_PIDS
>   
>     $ tail -22 error.log
> -  write(28 from 28) -> (779) Transfer-Encoding: chunked\r\n
> -  write(2 from 2) -> (777) \r\n
> -  write(6 from 6) -> (771) 1\\r\\n\x04\\r\\n (esc)
> -  write(9 from 9) -> (762) 4\r\nnone\r\n
> -  write(9 from 9) -> (753) 4\r\nHG20\r\n
> -  write(9 from 9) -> (744) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> -  write(9 from 9) -> (735) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
> -  write(47 from 47) -> (688) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02	\x01version02nbchanges1\\r\\n (esc)
> -  write(9 from 9) -> (679) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
> -  write(473 from 473) -> (206) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
> -  write(9 from 9) -> (197) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> -  write(9 from 9) -> (188) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
> -  write(38 from 38) -> (150) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00	\x06namespacephases\\r\\n (esc)
> -  write(9 from 9) -> (141) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
> -  write(64 from 64) -> (77) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c	1\npublishing	True\r\n
> -  write(9 from 9) -> (68) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> -  write(9 from 9) -> (59) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
> -  write(41 from 41) -> (18) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00		namespacebookmarks\\r\\n (esc)
> +  write(9 from 9) -> (851) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (842) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
> +  write(47 from 47) -> (795) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02	\x01version02nbchanges1\\r\\n (esc)
> +  write(9 from 9) -> (786) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
> +  write(473 from 473) -> (313) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (304) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (295) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
> +  write(38 from 38) -> (257) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00	\x06namespacephases\\r\\n (esc)
> +  write(9 from 9) -> (248) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
> +  write(64 from 64) -> (184) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c	1\npublishing	True\r\n
> +  write(9 from 9) -> (175) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (166) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
> +  write(41 from 41) -> (125) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00		namespacebookmarks\\r\\n (esc)
> +  write(9 from 9) -> (116) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (107) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
> +  write(35 from 35) -> (72) 1d\\r\\n\x16CACHE:REV-BRANCH-CACHE\x00\x00\x00\x03\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (63) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
> +  write(45 from 45) -> (18) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
>     write(9 from 9) -> (9) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
>     write(9 from 9) -> (0) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
>     write limit reached; closing socket
> @@ -869,7 +870,7 @@ This is before the 0 size chunked transf
>   
>   Server sends a size 0 chunked-transfer size without terminating \r\n
>   
> -  $ hg serve --config badserver.closeaftersendbytes=1725 -p $HGPORT -d --pid-file=hg.pid -E error.log
> +  $ hg serve --config badserver.closeaftersendbytes=1851 -p $HGPORT -d --pid-file=hg.pid -E error.log
>     $ cat hg.pid > $DAEMON_PIDS
>   
>     $ hg clone http://localhost:$HGPORT/ clone
> @@ -885,24 +886,24 @@ Server sends a size 0 chunked-transfer s
>     $ killdaemons.py $DAEMON_PIDS
>   
>     $ tail -23 error.log
> -  write(28 from 28) -> (782) Transfer-Encoding: chunked\r\n
> -  write(2 from 2) -> (780) \r\n
> -  write(6 from 6) -> (774) 1\\r\\n\x04\\r\\n (esc)
> -  write(9 from 9) -> (765) 4\r\nnone\r\n
> -  write(9 from 9) -> (756) 4\r\nHG20\r\n
> -  write(9 from 9) -> (747) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> -  write(9 from 9) -> (738) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
> -  write(47 from 47) -> (691) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02	\x01version02nbchanges1\\r\\n (esc)
> -  write(9 from 9) -> (682) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
> -  write(473 from 473) -> (209) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
> -  write(9 from 9) -> (200) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> -  write(9 from 9) -> (191) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
> -  write(38 from 38) -> (153) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00	\x06namespacephases\\r\\n (esc)
> -  write(9 from 9) -> (144) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
> -  write(64 from 64) -> (80) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c	1\npublishing	True\r\n
> -  write(9 from 9) -> (71) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> -  write(9 from 9) -> (62) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
> -  write(41 from 41) -> (21) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00		namespacebookmarks\\r\\n (esc)
> +  write(9 from 9) -> (854) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (845) 4\\r\\n\x00\x00\x00)\\r\\n (esc)
> +  write(47 from 47) -> (798) 29\\r\\n\x0bCHANGEGROUP\x00\x00\x00\x00\x01\x01\x07\x02	\x01version02nbchanges1\\r\\n (esc)
> +  write(9 from 9) -> (789) 4\\r\\n\x00\x00\x01\xd2\\r\\n (esc)
> +  write(473 from 473) -> (316) 1d2\\r\\n\x00\x00\x00\xb2\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>6a3df4de388f3c4f8e28f4f9a814299a3cbb5f50\\ntest\\n0 0\\nfoo\\n\\ninitial\x00\x00\x00\x00\x00\x00\x00\xa1j=\xf4\xde8\x8f<O\x8e(\xf4\xf9\xa8\x14)\x9a<\xbb_P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00b80de5d138758541c5f05265ad144ab9fa86d1db\\n\x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00h\xb8\\r\xe5\xd18u\x85A\xc5\xf0Re\xad\x14J\xb9\xfa\x86\xd1\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\x00\x00\x00\x00\x00\x00\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (307) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (298) 4\\r\\n\x00\x00\x00 \\r\\n (esc)
> +  write(38 from 38) -> (260) 20\\r\\n\x08LISTKEYS\x00\x00\x00\x01\x01\x00	\x06namespacephases\\r\\n (esc)
> +  write(9 from 9) -> (251) 4\\r\\n\x00\x00\x00:\\r\\n (esc)
> +  write(64 from 64) -> (187) 3a\r\n96ee1d7354c4ad7372047672c36a1f561e3a6a4c	1\npublishing	True\r\n
> +  write(9 from 9) -> (178) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (169) 4\\r\\n\x00\x00\x00#\\r\\n (esc)
> +  write(41 from 41) -> (128) 23\\r\\n\x08LISTKEYS\x00\x00\x00\x02\x01\x00		namespacebookmarks\\r\\n (esc)
> +  write(9 from 9) -> (119) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (110) 4\\r\\n\x00\x00\x00\x1d\\r\\n (esc)
> +  write(35 from 35) -> (75) 1d\\r\\n\x16CACHE:REV-BRANCH-CACHE\x00\x00\x00\x03\x00\x00\\r\\n (esc)
> +  write(9 from 9) -> (66) 4\\r\\n\x00\x00\x00'\\r\\n (esc)
> +  write(45 from 45) -> (21) 27\\r\\n\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00default\x96\xee\x1dsT\xc4\xadsr\x04vr\xc3j\x1fV\x1e:jL\\r\\n (esc)
>     write(9 from 9) -> (12) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
>     write(9 from 9) -> (3) 4\\r\\n\x00\x00\x00\x00\\r\\n (esc)
>     write(3 from 5) -> (0) 0\r\n
> diff --git a/tests/test-http.t b/tests/test-http.t
> --- a/tests/test-http.t
> +++ b/tests/test-http.t
> @@ -307,20 +307,20 @@ test http authentication
>     list of changesets:
>     7f4e523d01f2cc3765ac8934da3d14db775ff872
>     bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 188 bytes payload
> +  bundle2-output-part: "replycaps" 205 bytes payload
>     bundle2-output-part: "check:phases" 24 bytes payload
>     bundle2-output-part: "check:heads" streamed payload
>     bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
>     sending unbundle command
> -  sending 996 bytes
> +  sending 1013 bytes
>     devel-peer-request: POST http://localhost:$HGPORT2/?cmd=unbundle
> -  devel-peer-request:   Content-length 996
> +  devel-peer-request:   Content-length 1013
>     devel-peer-request:   Content-type application/mercurial-0.1
>     devel-peer-request:   Vary X-HgArg-1,X-HgProto-1
>     devel-peer-request:   X-hgproto-1 0.1 0.2 comp=$USUAL_COMPRESSIONS$
>     devel-peer-request:   16 bytes of commands arguments in headers
> -  devel-peer-request:   996 bytes of data
> +  devel-peer-request:   1013 bytes of data
>     devel-peer-request:   finished in *.???? seconds (200) (glob)
>     bundle2-input-bundle: no-transaction
>     bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported
> diff --git a/tests/test-obsolete-changeset-exchange.t b/tests/test-obsolete-changeset-exchange.t
> --- a/tests/test-obsolete-changeset-exchange.t
> +++ b/tests/test-obsolete-changeset-exchange.t
> @@ -155,10 +155,11 @@ client only pulls down 1 changeset
>     list of changesets:
>     bec0734cd68e84477ba7fc1d13e6cff53ab70129
>     listing keys for "bookmarks"
> -  bundle2-output-bundle: "HG20", 3 parts total
> +  bundle2-output-bundle: "HG20", 4 parts total
>     bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
>     bundle2-output-part: "listkeys" (params: 1 mandatory) empty payload
>     bundle2-output-part: "phase-heads" 24 bytes payload
> +  bundle2-output-part: "cache:rev-branch-cache" streamed payload
>     bundle2-input-bundle: with-transaction
>     bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
>     adding changesets
> @@ -171,7 +172,9 @@ client only pulls down 1 changeset
>     bundle2-input-part: "listkeys" (params: 1 mandatory) supported
>     bundle2-input-part: "phase-heads" supported
>     bundle2-input-part: total payload size 24
> -  bundle2-input-bundle: 2 parts total
> +  bundle2-input-part: "cache:rev-branch-cache" supported
> +  bundle2-input-part: total payload size 39
> +  bundle2-input-bundle: 3 parts total
>     checking for updated bookmarks
>     updating the branch cache
>     new changesets bec0734cd68e
> diff --git a/tests/test-rebase-conflicts.t b/tests/test-rebase-conflicts.t
> --- a/tests/test-rebase-conflicts.t
> +++ b/tests/test-rebase-conflicts.t
> @@ -325,13 +325,13 @@ Check that the right ancestors is used w
>     bundle2-input-part: total payload size 1686
>     bundle2-input-part: "cache:rev-branch-cache" supported
>     bundle2-input-part: total payload size 74
> +  truncating cache/rbc-revs-v1 to 56
>     bundle2-input-part: "phase-heads" supported
>     bundle2-input-part: total payload size 24
>     bundle2-input-bundle: 2 parts total
>     updating the branch cache
>     invalid branchheads cache (served): tip differs
>     rebase completed
> -  truncating cache/rbc-revs-v1 to 0
>   
>   Test minimization of merge conflicts
>     $ hg up -q null
> diff --git a/tests/test-ssh-bundle1.t b/tests/test-ssh-bundle1.t
> --- a/tests/test-ssh-bundle1.t
> +++ b/tests/test-ssh-bundle1.t
> @@ -478,9 +478,9 @@ debug output
>     sending upgrade request: * proto=exp-ssh-v2-0001 (glob) (sshv2 !)
>     sending hello command
>     sending between command
> +  remote: 403 (sshv1 !)
>     protocol upgraded to exp-ssh-v2-0001 (sshv2 !)
> -  remote: 384 (sshv1 !)
> -  remote: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  remote: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN (sshv2 !)
>     remote: 1 (sshv1 !)
>     preparing listkeys for "bookmarks"
>     sending listkeys command
> diff --git a/tests/test-ssh-proto-unbundle.t b/tests/test-ssh-proto-unbundle.t
> --- a/tests/test-ssh-proto-unbundle.t
> +++ b/tests/test-ssh-proto-unbundle.t
> @@ -56,8 +56,8 @@ Test pushing bundle1 payload to a server
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -110,8 +110,8 @@ Test pushing bundle1 payload to a server
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -225,8 +225,8 @@ ui.write() in hook is redirected to stde
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -285,8 +285,8 @@ ui.write() in hook is redirected to stde
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -353,8 +353,8 @@ And a variation that writes multiple lin
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -414,8 +414,8 @@ And a variation that writes multiple lin
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -483,8 +483,8 @@ And a variation that does a ui.flush() a
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -543,8 +543,8 @@ And a variation that does a ui.flush() a
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -611,8 +611,8 @@ Multiple writes + flush
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -672,8 +672,8 @@ Multiple writes + flush
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -741,8 +741,8 @@ ui.write() + ui.write_err() output is ca
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -804,8 +804,8 @@ ui.write() + ui.write_err() output is ca
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -875,8 +875,8 @@ print() output is captured
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -935,8 +935,8 @@ print() output is captured
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -1003,8 +1003,8 @@ Mixed print() and ui.write() are both ca
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1066,8 +1066,8 @@ Mixed print() and ui.write() are both ca
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -1137,8 +1137,8 @@ print() to stdout and stderr both get ca
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1200,8 +1200,8 @@ print() to stdout and stderr both get ca
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -1277,8 +1277,8 @@ Shell hook writing to stdout has output
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1338,8 +1338,8 @@ Shell hook writing to stdout has output
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -1408,8 +1408,8 @@ Shell hook writing to stderr has output
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1469,8 +1469,8 @@ Shell hook writing to stderr has output
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -1541,8 +1541,8 @@ Shell hook writing to stdout and stderr
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1604,8 +1604,8 @@ Shell hook writing to stdout and stderr
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -1684,8 +1684,8 @@ Shell and Python hooks writing to stdout
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1751,8 +1751,8 @@ Shell and Python hooks writing to stdout
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -1826,8 +1826,8 @@ Pushing a bundle1 with no output
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1882,8 +1882,8 @@ Pushing a bundle1 with no output
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> @@ -1958,8 +1958,8 @@ Pushing a bundle1 with ui.write() and ui
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -2018,8 +2018,8 @@ Pushing a bundle1 with ui.write() and ui
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending unbundle command
> diff --git a/tests/test-ssh-proto.t b/tests/test-ssh-proto.t
> --- a/tests/test-ssh-proto.t
> +++ b/tests/test-ssh-proto.t
> @@ -63,7 +63,7 @@ Test a normal behaving server, for sanit
>     devel-peer-request: between
>     devel-peer-request:   pairs: 81 bytes
>     sending between command
> -  remote: 384
> +  remote: 403
>     remote: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     remote: 1
>     url: ssh://user@dummy/server
> @@ -82,8 +82,8 @@ Server should answer the "hello" command
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>   
>   `hg debugserve --sshstdio` works
> @@ -92,7 +92,7 @@ Server should answer the "hello" command
>     $ hg debugserve --sshstdio << EOF
>     > hello
>     > EOF
> -  384
> +  403
>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>   
>   I/O logging works
> @@ -101,23 +101,23 @@ I/O logging works
>     > hello
>     > EOF
>     o> write(4) -> 4:
> -  o>     384\n
> -  o> write(384) -> 384:
> +  o>     403\n
> +  o> write(403) -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
> -  384
> +  403
>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> flush() -> None
>   
>     $ hg debugserve --sshstdio --logiofile $TESTTMP/io << EOF
>     > hello
>     > EOF
> -  384
> +  403
>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>   
>     $ cat $TESTTMP/io
>     o> write(4) -> 4:
> -  o>     384\n
> -  o> write(384) -> 384:
> +  o>     403\n
> +  o> write(403) -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> flush() -> None
>   
> @@ -143,8 +143,8 @@ reply with empty response to the "betwee
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(98) -> 98:
>     i>     between\n
> @@ -182,7 +182,7 @@ SSH banner is not printed by default, ig
>     remote: banner: line 7
>     remote: banner: line 8
>     remote: banner: line 9
> -  remote: 384
> +  remote: 403
>     remote: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     remote: 1
>     url: ssh://user@dummy/server
> @@ -237,8 +237,8 @@ And test the banner with the raw protoco
>     o> readline() -> 15:
>     o>     banner: line 9\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(98) -> 98:
>     i>     between\n
> @@ -290,12 +290,12 @@ Sending an unknown command to the server
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> +  o>     403\n
>     i> write(98) -> 98:
>     i>     between\n
>     i>     pairs 81\n
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> -  o> readline() -> 384:
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -310,7 +310,7 @@ Sending an unknown command to the server
>     devel-peer-request:   pairs: 81 bytes
>     sending between command
>     remote: 0
> -  remote: 384
> +  remote: 403
>     remote: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     remote: 1
>     url: ssh://user@dummy/server
> @@ -356,8 +356,8 @@ Send multiple unknown commands before he
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(98) -> 98:
>     i>     between\n
> @@ -382,7 +382,7 @@ Send multiple unknown commands before he
>     remote: 0
>     remote: 0
>     remote: 0
> -  remote: 384
> +  remote: 403
>     remote: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     remote: 1
>     url: ssh://user@dummy/server
> @@ -436,8 +436,8 @@ Send an unknown command before hello tha
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(98) -> 98:
>     i>     between\n
> @@ -483,8 +483,8 @@ Send an unknown command having an argume
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(98) -> 98:
>     i>     between\n
> @@ -528,8 +528,8 @@ Send an unknown command having an argume
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(98) -> 98:
>     i>     between\n
> @@ -598,8 +598,8 @@ Dictionary value for unknown command
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>   
>   Incomplete dictionary send
> @@ -680,8 +680,8 @@ Send a command line with spaces
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(98) -> 98:
>     i>     between\n
> @@ -714,8 +714,8 @@ Send a command line with spaces
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(98) -> 98:
>     i>     between\n
> @@ -757,8 +757,8 @@ Send a command line with spaces
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(98) -> 98:
>     i>     between\n
> @@ -768,7 +768,6 @@ Send a command line with spaces
>     o>     1\n
>     o> readline() -> 1:
>     o>     \n
> -
>   Send an unknown command after the "between"
>   
>     $ hg debugwireproto --localssh --peer raw << EOF
> @@ -787,8 +786,8 @@ Send an unknown command after the "betwe
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(105) -> 105:
>     i>     between\n
> @@ -828,8 +827,8 @@ And one with arguments
>     i>     pairs 81\n
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -877,8 +876,8 @@ Send a valid command before the handshak
>     o> readline() -> 41:
>     o>     68986213bd4485ea51533535e3fc9e78007a711f\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -904,7 +903,7 @@ And a variation that doesn't send the be
>     o> readline() -> 41:
>     o>     68986213bd4485ea51533535e3fc9e78007a711f\n
>     o> readline() -> 4:
> -  o>     384\n
> +  o>     403\n
>   
>   Send an upgrade request to a server that doesn't support that command
>   
> @@ -933,8 +932,8 @@ Send an upgrade request to a server that
>     i>     pairs 81\n
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -953,7 +952,7 @@ Send an upgrade request to a server that
>     devel-peer-request:   pairs: 81 bytes
>     sending between command
>     remote: 0
> -  remote: 384
> +  remote: 403
>     remote: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     remote: 1
>     url: ssh://user@dummy/server
> @@ -993,8 +992,8 @@ Send an upgrade request to a server that
>     o> readline() -> 44:
>     o>     upgraded this-is-some-token exp-ssh-v2-0001\n
>     o> readline() -> 4:
> -  o>     383\n
> -  o> readline() -> 384:
> +  o>     402\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>   
>     $ cd ..
> @@ -1062,6 +1061,7 @@ Verify the peer has capabilities
>       remote-changegroup
>         http
>         https
> +    rev-branch-cache
>   
>   Command after upgrade to version 2 is processed
>   
> @@ -1092,14 +1092,14 @@ Command after upgrade to version 2 is pr
>     o> readline() -> 44:
>     o>     upgraded this-is-some-token exp-ssh-v2-0001\n
>     o> readline() -> 4:
> -  o>     383\n
> -  o> readline() -> 384:
> +  o>     402\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     366\n
> -  o> readline() -> 366:
> +  o>     385\n
> +  o> readline() -> 385:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>   
>   Multiple upgrades is not allowed
> @@ -1130,8 +1130,8 @@ Multiple upgrades is not allowed
>     o> readline() -> 44:
>     o>     upgraded this-is-some-token exp-ssh-v2-0001\n
>     o> readline() -> 4:
> -  o>     383\n
> -  o> readline() -> 384:
> +  o>     402\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(45) -> 45:
>     i>     upgrade another-token proto=irrelevant\n
> @@ -1203,8 +1203,8 @@ Upgrade request to unsupported protocol
>     i> write(6) -> 6:
>     i>     hello\n
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     i> write(98) -> 98:
>     i>     between\n
> @@ -1323,8 +1323,8 @@ Test listkeys for listing namespaces
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1357,8 +1357,8 @@ Test listkeys for listing namespaces
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending listkeys command
> @@ -1403,8 +1403,8 @@ With no bookmarks set
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1433,8 +1433,8 @@ With no bookmarks set
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending listkeys command
> @@ -1464,8 +1464,8 @@ With a single bookmark set
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1495,8 +1495,8 @@ With a single bookmark set
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending listkeys command
> @@ -1527,8 +1527,8 @@ With multiple bookmarks set
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1560,8 +1560,8 @@ With multiple bookmarks set
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending listkeys command
> @@ -1596,8 +1596,8 @@ Test pushkey for bookmarks
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1636,8 +1636,8 @@ Test pushkey for bookmarks
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending pushkey command
> @@ -1688,8 +1688,8 @@ Phases on empty repo
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1719,8 +1719,8 @@ Phases on empty repo
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending listkeys command
> @@ -1767,8 +1767,8 @@ Two draft heads
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1801,8 +1801,8 @@ Two draft heads
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending listkeys command
> @@ -1836,8 +1836,8 @@ Single draft head
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1869,8 +1869,8 @@ Single draft head
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending listkeys command
> @@ -1903,8 +1903,8 @@ All public heads
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -1934,8 +1934,8 @@ All public heads
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending listkeys command
> @@ -1970,8 +1970,8 @@ Setting public phase via pushkey
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -2011,8 +2011,8 @@ Setting public phase via pushkey
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending pushkey command
> @@ -2077,8 +2077,8 @@ Test batching of requests
>     i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
>     i> flush() -> None
>     o> readline() -> 4:
> -  o>     384\n
> -  o> readline() -> 384:
> +  o>     403\n
> +  o> readline() -> 403:
>     o>     capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN\n
>     o> readline() -> 2:
>     o>     1\n
> @@ -2117,8 +2117,8 @@ Test batching of requests
>     o> readline() -> 62:
>     o>     upgraded * exp-ssh-v2-0001\n (glob)
>     o> readline() -> 4:
> -  o>     383\n
> -  o> read(383) -> 383: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
> +  o>     402\n
> +  o> read(402) -> 402: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     o> read(1) -> 1:
>     o>     \n
>     sending batch with 3 sub-commands
> diff --git a/tests/test-ssh.t b/tests/test-ssh.t
> --- a/tests/test-ssh.t
> +++ b/tests/test-ssh.t
> @@ -496,7 +496,7 @@ debug output
>     devel-peer-request: between
>     devel-peer-request:   pairs: 81 bytes
>     sending between command
> -  remote: 384 (sshv1 !)
> +  remote: 403 (sshv1 !)
>     protocol upgraded to exp-ssh-v2-0001 (sshv2 !)
>     remote: capabilities: lookup branchmap pushkey known getbundle unbundlehash batch changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ unbundle=HG10GZ,HG10BZ,HG10UN
>     remote: 1 (sshv1 !)
> @@ -512,7 +512,7 @@ debug output
>     no changes found
>     devel-peer-request: getbundle
>     devel-peer-request:   bookmarks: 1 bytes
> -  devel-peer-request:   bundlecaps: 247 bytes
> +  devel-peer-request:   bundlecaps: 266 bytes
>     devel-peer-request:   cg: 1 bytes
>     devel-peer-request:   common: 122 bytes
>     devel-peer-request:   heads: 122 bytes
> diff --git a/tests/test-static-http.t b/tests/test-static-http.t
> --- a/tests/test-static-http.t
> +++ b/tests/test-static-http.t
> @@ -222,6 +222,8 @@ List of files accessed over HTTP:
>     /.hg/bookmarks
>     /.hg/bookmarks.current
>     /.hg/cache/hgtagsfnodes1
> +  /.hg/cache/rbc-names-v1
> +  /.hg/cache/rbc-revs-v1
>     /.hg/requires
>     /.hg/store/00changelog.i
>     /.hg/store/00manifest.i
> @@ -234,6 +236,8 @@ List of files accessed over HTTP:
>     /remote-with-names/.hg/bookmarks.current
>     /remote-with-names/.hg/cache/branch2-served
>     /remote-with-names/.hg/cache/hgtagsfnodes1
> +  /remote-with-names/.hg/cache/rbc-names-v1
> +  /remote-with-names/.hg/cache/rbc-revs-v1
>     /remote-with-names/.hg/cache/tags2-served
>     /remote-with-names/.hg/localtags
>     /remote-with-names/.hg/requires
> @@ -248,6 +252,7 @@ List of files accessed over HTTP:
>     /remote/.hg/cache/branch2-served
>     /remote/.hg/cache/hgtagsfnodes1
>     /remote/.hg/cache/rbc-names-v1
> +  /remote/.hg/cache/rbc-revs-v1
>     /remote/.hg/cache/tags2-served
>     /remote/.hg/localtags
>     /remote/.hg/requires
> @@ -265,6 +270,8 @@ List of files accessed over HTTP:
>     /sub/.hg/bookmarks
>     /sub/.hg/bookmarks.current
>     /sub/.hg/cache/hgtagsfnodes1
> +  /sub/.hg/cache/rbc-names-v1
> +  /sub/.hg/cache/rbc-revs-v1
>     /sub/.hg/requires
>     /sub/.hg/store/00changelog.i
>     /sub/.hg/store/00manifest.i
> diff --git a/tests/test-tags.t b/tests/test-tags.t
> --- a/tests/test-tags.t
> +++ b/tests/test-tags.t
> @@ -681,6 +681,8 @@ Missing tags2* files means the cache was
>     checklink (symlink !)
>     checklink-target (symlink !)
>     hgtagsfnodes1
> +  rbc-names-v1
> +  rbc-revs-v1
>   
>   Cache should contain the head only, even though other nodes have tags data
>   
> @@ -706,6 +708,8 @@ Running hg tags should produce tags2* fi
>     checklink (symlink !)
>     checklink-target (symlink !)
>     hgtagsfnodes1
> +  rbc-names-v1
> +  rbc-revs-v1
>     tags2-visible
>   
>     $ f --size --hexdump tagsclient/.hg/cache/hgtagsfnodes1




More information about the Mercurial-devel mailing list