Browse Source

connect, protocol: log negotiated protocol version

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>
pull/1083/head
Josh Steadmon 1 year ago committed by Junio C Hamano
parent
commit
626beebdf8
  1. 2
      connect.c
  2. 2
      protocol.c
  3. 11
      t/t5705-session-id-in-capabilities.sh

2
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;
}

2
protocol.c

@ -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;
}

11
t/t5705-session-id-in-capabilities.sh

@ -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

Loading…
Cancel
Save