This is an archive of the discontinued Mercurial Phabricator instance.

debugcommands: perform handshake when obtaining httpv2 peer
ClosedPublic

Authored by indygreg on Apr 12 2018, 3:59 PM.

Details

Summary

If we obtain an httpv2peer directly, the instance doesn't have
an API descriptor and therefore doesn't know about the remote's
commands, feature support, etc. This doesn't matter now. But when
we implement the peer so it consults the API descriptor as part
of sending commands, it will.

So we change the logic for obtaining an http version 2 peer to
go through makepeer() so the peer will perform the handshake and
pass the API descriptor to the httpv2peer instance.

Tests changed because we now perform a ?cmd=capabilities when
obtaining version 2 peers.

The Content-Length header is globbed because compression info
will lack zstandard for pure builds.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.