[PATCH 3 of 3 V2-rebased] bundle2: convey PushkeyFailed error over the wire

Augie Fackler raf at durin42.com
Wed Jun 10 09:26:59 CDT 2015


On Tue, Jun 09, 2015 at 10:56:28AM -0700, Pierre-Yves David wrote:
> # HG changeset patch
> # User Pierre-Yves David <pierre-yves.david at fb.com>
> # Date 1433547135 25200
> #      Fri Jun 05 16:32:15 2015 -0700
> # Node ID 21bd4a20578e5a308c1e0b4187481a5d4250e943
> # Parent  c3795ae132413685580d1b2d51abdb46bc134476
> bundle2: convey PushkeyFailed error over the wire

Queued these, thanks

>
> We add a way to convey the precise exception. This will allow better error
> message on the server.
>
> diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py
> --- a/mercurial/bundle2.py
> +++ b/mercurial/bundle2.py
> @@ -1107,11 +1107,12 @@ class unbundlepart(unpackermixin):
>              self._pos = newpos
>
>  # These are only the static capabilities.
>  # Check the 'getrepocaps' function for the rest.
>  capabilities = {'HG20': (),
> -                'error': ('abort', 'unsupportedcontent', 'pushraced'),
> +                'error': ('abort', 'unsupportedcontent', 'pushraced',
> +                          'pushkey'),
>                  'listkeys': (),
>                  'pushkey': (),
>                  'digests': tuple(sorted(util.DIGESTS.keys())),
>                  'remote-changegroup': ('http', 'https'),
>                  'hgtagsfnodes': (),
> @@ -1288,10 +1289,21 @@ def handlereplycaps(op, inpart):
>  @parthandler('error:abort', ('message', 'hint'))
>  def handleerrorabort(op, inpart):
>      """Used to transmit abort error over the wire"""
>      raise util.Abort(inpart.params['message'], hint=inpart.params.get('hint'))
>
> + at parthandler('error:pushkey', ('namespace', 'key', 'new', 'old', 'ret',
> +                               'in-reply-to'))
> +def handleerrorpushkey(op, inpart):
> +    """Used to transmit failure of a mandatory pushkey over the wire"""
> +    kwargs = {}
> +    for name in ('namespace', 'key', 'new', 'old', 'ret'):
> +        value = inpart.params.get(name)
> +        if value is not None:
> +            kwargs[name] = value
> +    raise error.PushkeyFailed(inpart.params['in-reply-to'], **kwargs)
> +
>  @parthandler('error:unsupportedcontent', ('parttype', 'params'))
>  def handleerrorunsupportedcontent(op, inpart):
>      """Used to transmit unknown content error over the wire"""
>      kwargs = {}
>      parttype = inpart.params.get('parttype')
> diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py
> --- a/mercurial/wireproto.py
> +++ b/mercurial/wireproto.py
> @@ -817,11 +817,31 @@ def unbundle(repo, proto, heads):
>
>          bundler = bundle2.bundle20(repo.ui)
>          for out in getattr(exc, '_bundle2salvagedoutput', ()):
>              bundler.addpart(out)
>          try:
> -            raise
> +            try:
> +                raise
> +            except error.PushkeyFailed, exc:
> +                # check client caps
> +                remotecaps = getattr(exc, '_replycaps', None)
> +                if (remotecaps is not None
> +                        and 'pushkey' not in remotecaps.get('error', ())):
> +                    # no support remote side, fallback to Abort handler.
> +                    raise
> +                part = bundler.newpart('error:pushkey')
> +                part.addparam('in-reply-to', exc.partid)
> +                if exc.namespace is not None:
> +                    part.addparam('namespace', exc.namespace, mandatory=False)
> +                if exc.key is not None:
> +                    part.addparam('key', exc.key, mandatory=False)
> +                if exc.new is not None:
> +                    part.addparam('new', exc.new, mandatory=False)
> +                if exc.old is not None:
> +                    part.addparam('old', exc.old, mandatory=False)
> +                if exc.ret is not None:
> +                    part.addparam('ret', exc.ret, mandatory=False)
>          except error.BundleValueError, exc:
>              errpart = bundler.newpart('error:unsupportedcontent')
>              if exc.parttype is not None:
>                  errpart.addparam('parttype', exc.parttype)
>              if exc.params:
> diff --git a/tests/test-acl.t b/tests/test-acl.t
> --- a/tests/test-acl.t
> +++ b/tests/test-acl.t
> @@ -97,17 +97,17 @@ Extension disabled for lack of a hook
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -161,17 +161,17 @@ Extension disabled for lack of acl.sourc
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -228,17 +228,17 @@ No [acl.allow]/[acl.deny]
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -305,17 +305,17 @@ Empty [acl.allow]
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -370,17 +370,17 @@ fred is allowed inside foo/
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -440,17 +440,17 @@ Empty [acl.deny]
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -507,17 +507,17 @@ fred is allowed inside foo/, but not foo
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -579,17 +579,17 @@ fred is allowed inside foo/, but not foo
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -648,17 +648,17 @@ fred is allowed inside foo/, but not foo
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -719,17 +719,17 @@ barney is allowed everywhere
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -803,17 +803,17 @@ wilma can change files with a .txt exten
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -881,17 +881,17 @@ file specified by acl.config does not ex
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -954,17 +954,17 @@ betty is allowed inside foo/ by a acl.co
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1038,17 +1038,17 @@ acl.config can set only [acl.allow]/[acl
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1125,17 +1125,17 @@ fred is always allowed
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1208,17 +1208,17 @@ no one is allowed inside foo/Bar/
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1284,17 +1284,17 @@ OS-level groups
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1368,17 +1368,17 @@ OS-level groups
>    list of changesets:
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    bundle2-output-bundle: "HG20", 4 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1483,18 +1483,18 @@ No branch acls specified
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>    bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1572,18 +1572,18 @@ Branch acl deny test
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>    bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1646,18 +1646,18 @@ Branch acl empty allow test
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>    bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1716,18 +1716,18 @@ Branch acl allow other
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>    bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1780,18 +1780,18 @@ Branch acl allow other
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>    bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1874,18 +1874,18 @@ push foobar into the remote
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>    bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -1967,18 +1967,18 @@ Branch acl conflicting deny
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>    bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -2036,18 +2036,18 @@ User 'astro' must not be denied
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>    bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> @@ -2123,18 +2123,18 @@ Non-astro users must be denied
>    ef1ea85a6374b77d6da9dcda9541f498f2d17df7
>    f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd
>    911600dab2ae7a9baff75958b84fe606851ce955
>    e8fc755d4d8217ee5b0c2bb41558c40d43b92c01
>    bundle2-output-bundle: "HG20", 5 parts total
> -  bundle2-output-part: "replycaps" 147 bytes payload
> +  bundle2-output-part: "replycaps" 155 bytes payload
>    bundle2-output-part: "check:heads" streamed payload
>    bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-output-part: "pushkey" (advisory) (params: 4 mandatory) empty payload
>    bundle2-input-bundle: with-transaction
>    bundle2-input-part: "replycaps" supported
> -  bundle2-input-part: total payload size 147
> +  bundle2-input-part: total payload size 155
>    bundle2-input-part: "check:heads" supported
>    bundle2-input-part: total payload size 20
>    bundle2-input-part: "changegroup" (params: 1 mandatory) supported
>    adding changesets
>    add changeset ef1ea85a6374
> diff --git a/tests/test-bundle2-exchange.t b/tests/test-bundle2-exchange.t
> --- a/tests/test-bundle2-exchange.t
> +++ b/tests/test-bundle2-exchange.t
> @@ -775,11 +775,11 @@ Check abort from mandatory pushkey
>    remote: do not push the key !
>    remote: pushkey-abort: prepushkey.failpush hook exited with status 1
>    remote: transaction abort!
>    remote: Cleaning up the mess...
>    remote: rollback completed
> -  abort: failed to update value for "phases/cd010b8cd998f3981a5a8115f94f8da4ab506089"
> +  abort: Correct phase push failed (because hooks)
>    [255]
>    $ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6
>    pushing to http://localhost:$HGPORT2/
>    searching for changes
>    remote: adding changesets
> @@ -789,11 +789,11 @@ Check abort from mandatory pushkey
>    remote: do not push the key !
>    remote: pushkey-abort: prepushkey.failpush hook exited with status 1
>    remote: transaction abort!
>    remote: Cleaning up the mess...
>    remote: rollback completed
> -  abort: failed to update value for "phases/cd010b8cd998f3981a5a8115f94f8da4ab506089"
> +  abort: Correct phase push failed (because hooks)
>    [255]
>
>  (Failure from a the pushkey)
>
>    $ cat > mandatorypart.py << EOF
> @@ -847,11 +847,11 @@ Check abort from mandatory pushkey
>    remote: Cleaning up the mess...
>    remote: rollback completed
>    remote: pushkey: lock state after "phases"
>    remote: lock:  free
>    remote: wlock: free
> -  abort: failed to update value for "phases/cd010b8cd998f3981a5a8115f94f8da4ab506089"
> +  abort: Clown phase push failed
>    [255]
>    $ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6
>    pushing to http://localhost:$HGPORT2/
>    searching for changes
>    remote: adding changesets
> @@ -862,8 +862,8 @@ Check abort from mandatory pushkey
>    remote: Cleaning up the mess...
>    remote: rollback completed
>    remote: pushkey: lock state after "phases"
>    remote: lock:  free
>    remote: wlock: free
> -  abort: failed to update value for "phases/cd010b8cd998f3981a5a8115f94f8da4ab506089"
> +  abort: Clown phase push failed
>    [255]
>
> diff --git a/tests/test-http-proxy.t b/tests/test-http-proxy.t
> --- a/tests/test-http-proxy.t
> +++ b/tests/test-http-proxy.t
> @@ -108,23 +108,23 @@ do not use the proxy if it is in the no
>    $ cat proxy.log
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=branchmap HTTP/1.1" - - (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=stream_out HTTP/1.1" - - (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D83180e7845de420a1bb46896fd5fe05294f8d629 (glob)
> -  * - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=0&common=83180e7845de420a1bb46896fd5fe05294f8d629&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=phase%2Cbookmarks (glob)
> +  * - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=0&common=83180e7845de420a1bb46896fd5fe05294f8d629&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=phase%2Cbookmarks (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=phases (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D (glob)
> -  * - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=phase%2Cbookmarks (glob)
> +  * - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=phase%2Cbookmarks (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=phases (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D (glob)
> -  * - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=phase%2Cbookmarks (glob)
> +  * - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=phase%2Cbookmarks (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=phases (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D (glob)
> -  * - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=phase%2Cbookmarks (glob)
> +  * - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=phase%2Cbookmarks (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=phases (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=batch HTTP/1.1" - - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D (glob)
> -  * - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=phase%2Cbookmarks (glob)
> +  * - - [*] "GET http://localhost:$HGPORT/?cmd=getbundle HTTP/1.1" - - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=83180e7845de420a1bb46896fd5fe05294f8d629&listkeys=phase%2Cbookmarks (glob)
>    * - - [*] "GET http://localhost:$HGPORT/?cmd=listkeys HTTP/1.1" - - x-hgarg-1:namespace=phases (glob)
> diff --git a/tests/test-http.t b/tests/test-http.t
> --- a/tests/test-http.t
> +++ b/tests/test-http.t
> @@ -260,16 +260,16 @@ test http authentication
>    "GET /?cmd=capabilities HTTP/1.1" 200 -
>    "GET /?cmd=branchmap HTTP/1.1" 200 -
>    "GET /?cmd=stream_out HTTP/1.1" 401 -
>    "GET /?cmd=stream_out HTTP/1.1" 200 -
>    "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D5fed3813f7f5e1824344fdc9cf8f63bb662c292d
> -  "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=0&common=5fed3813f7f5e1824344fdc9cf8f63bb662c292d&heads=5fed3813f7f5e1824344fdc9cf8f63bb662c292d&listkeys=phase%2Cbookmarks
> +  "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=0&common=5fed3813f7f5e1824344fdc9cf8f63bb662c292d&heads=5fed3813f7f5e1824344fdc9cf8f63bb662c292d&listkeys=phase%2Cbookmarks
>    "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases
>    "GET /?cmd=capabilities HTTP/1.1" 200 -
>    "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D
> -  "GET /?cmd=getbundle HTTP/1.1" 401 - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=5fed3813f7f5e1824344fdc9cf8f63bb662c292d&listkeys=phase%2Cbookmarks
> -  "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=5fed3813f7f5e1824344fdc9cf8f63bb662c292d&listkeys=phase%2Cbookmarks
> +  "GET /?cmd=getbundle HTTP/1.1" 401 - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=5fed3813f7f5e1824344fdc9cf8f63bb662c292d&listkeys=phase%2Cbookmarks
> +  "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bundlecaps=HG20%2Cbundle2%3DHG20%250Achangegroup%253D01%252C02%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps&cg=1&common=0000000000000000000000000000000000000000&heads=5fed3813f7f5e1824344fdc9cf8f63bb662c292d&listkeys=phase%2Cbookmarks
>    "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases
>    "GET /?cmd=capabilities HTTP/1.1" 200 -
>    "GET /?cmd=lookup HTTP/1.1" 200 - x-hgarg-1:key=tip
>    "GET /?cmd=listkeys HTTP/1.1" 401 - x-hgarg-1:namespace=namespaces
>    "GET /?cmd=capabilities HTTP/1.1" 200 -
> 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
> @@ -458,12 +458,12 @@ debug output
>    $ hg pull --debug ssh://user@dummy/remote
>    pulling from ssh://user@dummy/remote
>    running dummyssh user at dummy ('|")hg -R remote serve --stdio('|") (re)
>    sending hello command
>    sending between command
> -  remote: 335
> -  remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024
> +  remote: 345
> +  remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream bundle2=HG20%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
>    remote: 1
>    preparing listkeys for "bookmarks"
>    sending listkeys command
>    received listkey for "bookmarks": 45 bytes
>    query 1; heads
> diff --git a/tests/test-ssh.t b/tests/test-ssh.t
> --- a/tests/test-ssh.t
> +++ b/tests/test-ssh.t
> @@ -446,12 +446,12 @@ debug output
>    $ hg pull --debug ssh://user@dummy/remote
>    pulling from ssh://user@dummy/remote
>    running dummyssh user at dummy ('|")hg -R remote serve --stdio('|") (re)
>    sending hello command
>    sending between command
> -  remote: 335
> -  remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%0Ahgtagsfnodes%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024
> +  remote: 345
> +  remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream bundle2=HG20%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
>    remote: 1
>    query 1; heads
>    sending batch command
>    searching for changes
>    all remote heads known locally
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list