]> Kevux Git Server - rit/commitdiff
connect, protocol: log negotiated protocol version
authorJosh Steadmon <steadmon@google.com>
Tue, 10 Aug 2021 17:20:39 +0000 (10:20 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 10 Aug 2021 18:46:33 +0000 (11:46 -0700)
It is useful for performance monitoring and debugging purposes to know
the wire protocol used for remote operations. This may differ from the
version set in local configuration due to differences in version and/or
configuration between the server and the client. Therefore, log the
negotiated wire protocol version via trace2, for both clients and
servers.

Signed-off-by: Josh Steadmon <steadmon@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
connect.c
protocol.c
t/t5705-session-id-in-capabilities.sh

index 70b1338..aff13a2 100644 (file)
--- a/connect.c
+++ b/connect.c
@@ -164,6 +164,8 @@ enum protocol_version discover_version(struct packet_reader *reader)
                BUG("unknown protocol version");
        }
 
+       trace2_data_intmax("transfer", NULL, "negotiated-version", version);
+
        return version;
 }
 
index 052d7ed..c53f7df 100644 (file)
@@ -73,6 +73,8 @@ enum protocol_version determine_protocol_version_server(void)
                string_list_clear(&list, 0);
        }
 
+       trace2_data_intmax("transfer", NULL, "negotiated-version", version);
+
        return version;
 }
 
index f1d189d..eb8c79a 100755 (executable)
@@ -73,6 +73,17 @@ do
                grep \"key\":\"server-sid\" tr2-client-events &&
                grep \"key\":\"client-sid\" tr2-server-events
        '
+
+       test_expect_success "client & server log negotiated version (v${PROTO})" '
+               test_when_finished "rm -rf local tr2-client-events tr2-server-events" &&
+               cp -r "$LOCAL_PRISTINE" local &&
+               GIT_TRACE2_EVENT="$(pwd)/tr2-client-events" \
+               git -c protocol.version=$PROTO -C local fetch \
+                       --upload-pack "GIT_TRACE2_EVENT=\"$(pwd)/tr2-server-events\" git-upload-pack" \
+                       origin &&
+               grep \"key\":\"negotiated-version\",\"value\":\"$PROTO\" tr2-client-events &&
+               grep \"key\":\"negotiated-version\",\"value\":\"$PROTO\" tr2-server-events
+       '
 done
 
 test_done