diff options
-rw-r--r-- | builtin/fetch-pack.c | 7 | ||||
-rw-r--r-- | builtin/send-pack.c | 12 |
2 files changed, 15 insertions, 4 deletions
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c index fe565966a..bc7a0f9e7 100644 --- a/builtin/fetch-pack.c +++ b/builtin/fetch-pack.c @@ -19,6 +19,7 @@ static int prefer_ofs_delta = 1; static int no_done; static int fetch_fsck_objects = -1; static int transfer_fsck_objects = -1; +static int agent_supported; static struct fetch_pack_args args = { /* .uploadpack = */ "git-upload-pack", }; @@ -328,7 +329,8 @@ static int find_common(int fd[2], unsigned char *result_sha1, if (args.no_progress) strbuf_addstr(&c, " no-progress"); if (args.include_tag) strbuf_addstr(&c, " include-tag"); if (prefer_ofs_delta) strbuf_addstr(&c, " ofs-delta"); - strbuf_addf(&c, " agent=%s", git_user_agent_sanitized()); + if (agent_supported) strbuf_addf(&c, " agent=%s", + git_user_agent_sanitized()); packet_buf_write(&req_buf, "want %s%s\n", remote_hex, c.buf); strbuf_release(&c); } else @@ -821,6 +823,9 @@ static struct ref *do_fetch_pack(int fd[2], fprintf(stderr, "Server supports ofs-delta\n"); } else prefer_ofs_delta = 0; + if (server_supports("agent")) + agent_supported = 1; + if (everything_local(&ref, nr_match, match)) { packet_flush(fd[1]); goto all_done; diff --git a/builtin/send-pack.c b/builtin/send-pack.c index 5c6999555..7d0506421 100644 --- a/builtin/send-pack.c +++ b/builtin/send-pack.c @@ -252,6 +252,7 @@ int send_pack(struct send_pack_args *args, int status_report = 0; int use_sideband = 0; int quiet_supported = 0; + int agent_supported = 0; unsigned cmds_sent = 0; int ret; struct async demux; @@ -267,6 +268,8 @@ int send_pack(struct send_pack_args *args, use_sideband = 1; if (server_supports("quiet")) quiet_supported = 1; + if (server_supports("agent")) + agent_supported = 1; if (!remote_refs) { fprintf(stderr, "No refs in common and none specified; doing nothing.\n" @@ -306,14 +309,17 @@ int send_pack(struct send_pack_args *args, char *new_hex = sha1_to_hex(ref->new_sha1); int quiet = quiet_supported && (args->quiet || !args->progress); - if (!cmds_sent && (status_report || use_sideband || quiet)) { + if (!cmds_sent && (status_report || use_sideband || + quiet || agent_supported)) { packet_buf_write(&req_buf, - "%s %s %s%c%s%s%s agent=%s", + "%s %s %s%c%s%s%s%s%s", old_hex, new_hex, ref->name, 0, status_report ? " report-status" : "", use_sideband ? " side-band-64k" : "", quiet ? " quiet" : "", - git_user_agent_sanitized()); + agent_supported ? " agent=" : "", + agent_supported ? git_user_agent_sanitized() : "" + ); } else packet_buf_write(&req_buf, "%s %s %s", |