diff options
author | Brandon Williams <bmwill@google.com> | 2018-04-23 15:46:24 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-04-24 11:24:40 +0900 |
commit | 5e3548ef161d4d284e35cf5f5d6a181ba4fe707b (patch) | |
tree | a1e5175546417ed701dbe109b683142b95111261 /fetch-pack.c | |
parent | ff473221b4d6cf0894ba47370492d853a36c024d (diff) | |
download | git-5e3548ef161d4d284e35cf5f5d6a181ba4fe707b.tar.gz |
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 <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'fetch-pack.c')
-rw-r--r-- | fetch-pack.c | 7 |
1 files changed, 7 insertions, 0 deletions
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) |