From 5e3548ef161d4d284e35cf5f5d6a181ba4fe707b Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Mon, 23 Apr 2018 15:46:24 -0700 Subject: fetch: send server options when using protocol v2 Teach fetch to optionally accept server options by specifying them on the cmdline via '-o' or '--server-option'. These server options are sent to the remote end when performing a fetch communicating using protocol version 2. If communicating using a protocol other than v2 the provided options are ignored and not sent to the remote end. Signed-off-by: Brandon Williams Signed-off-by: Junio C Hamano --- fetch-pack.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'fetch-pack.c') diff --git a/fetch-pack.c b/fetch-pack.c index 216d1368be..199eb8a1d8 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -1174,6 +1174,13 @@ static int send_fetch_request(int fd_out, const struct fetch_pack_args *args, packet_buf_write(&req_buf, "command=fetch"); if (server_supports_v2("agent", 0)) packet_buf_write(&req_buf, "agent=%s", git_user_agent_sanitized()); + if (args->server_options && args->server_options->nr && + server_supports_v2("server-option", 1)) { + int i; + for (i = 0; i < args->server_options->nr; i++) + packet_write_fmt(fd_out, "server-option=%s", + args->server_options->items[i].string); + } packet_buf_delim(&req_buf); if (args->use_thin_pack) -- cgit v1.2.3