When trace2 is enabled, the server sent a trace2-sid capability, and trace2.advertiseSID is true, advertise send-pack's own session ID back to the server. Signed-off-by: Josh Steadmon <steadmon@xxxxxxxxxx> --- send-pack.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/send-pack.c b/send-pack.c index eb4a44270b..7478a3f7cc 100644 --- a/send-pack.c +++ b/send-pack.c @@ -424,6 +424,8 @@ int send_pack(struct send_pack_args *args, int use_sideband = 0; int quiet_supported = 0; int agent_supported = 0; + int server_sent_trace2_sid = 0; + int advertise_trace2_sid = 0; int use_atomic = 0; int atomic_supported = 0; int use_push_options = 0; @@ -435,6 +437,8 @@ int send_pack(struct send_pack_args *args, const char *push_cert_nonce = NULL; struct packet_reader reader; + git_config_get_bool("trace2.advertisesid", &advertise_trace2_sid); + /* Does the other end support the reporting? */ if (server_supports("report-status-v2")) status_report = 2; @@ -450,6 +454,8 @@ int send_pack(struct send_pack_args *args, quiet_supported = 1; if (server_supports("agent")) agent_supported = 1; + if (server_supports("trace2-sid")) + server_sent_trace2_sid = 1; if (server_supports("no-thin")) args->use_thin_pack = 0; if (server_supports("atomic")) @@ -506,6 +512,8 @@ int send_pack(struct send_pack_args *args, strbuf_addf(&cap_buf, " object-format=%s", the_hash_algo->name); if (agent_supported) strbuf_addf(&cap_buf, " agent=%s", git_user_agent_sanitized()); + if (advertise_trace2_sid && server_sent_trace2_sid && trace2_is_enabled()) + strbuf_addf(&cap_buf, " trace2-sid=%s", trace2_session_id()); /* * NEEDSWORK: why does delete-refs have to be so specific to -- 2.29.1.341.ge80a0c044ae-goog