path: root/transport.c
diff options
authorBrandon Williams <>2018-03-15 17:31:34 (GMT)
committerJunio C Hamano <>2018-03-15 19:01:09 (GMT)
commitedc9caf7e2ecd3d5327e78a3e539eda61a0e4d81 (patch)
tree358d68cffa7b88995b3b4abbe90ccddd46f16257 /transport.c
parent176e85c1b4bd055633e01dd7bb717191d369e8a1 (diff)
transport-helper: introduce stateless-connect
Introduce the transport-helper capability 'stateless-connect'. This capability indicates that the transport-helper can be requested to run the 'stateless-connect' command which should attempt to make a stateless connection with a remote end. Once established, the connection can be used by the git client to communicate with the remote end natively in a stateless-rpc manner as supported by protocol v2. This means that the client must send everything the server needs in a single request as the client must not assume any state-storing on the part of the server or transport. If a stateless connection cannot be established then the remote-helper will respond in the same manner as the 'connect' command indicating that the client should fallback to using the dumb remote-helper commands. A future patch will implement the 'stateless-connect' capability in our http remote-helper (remote-curl) so that protocol v2 can be used using the http transport. Signed-off-by: Brandon Williams <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'transport.c')
1 files changed, 1 insertions, 0 deletions
diff --git a/transport.c b/transport.c
index 9152a45..342db49 100644
--- a/transport.c
+++ b/transport.c
@@ -252,6 +252,7 @@ static int fetch_refs_via_pack(struct transport *transport,
args.cloning = transport->cloning;
args.update_shallow = data->options.update_shallow;
+ args.stateless_rpc = transport->stateless_rpc;
if (!data->got_remote_heads)
refs_tmp = get_refs_via_connect(transport, 0, NULL);