This is on the latest master (8feddda32c ("Fifth batch for 2.21", 2019-02-05)) + js/protocol-advertise-multi. This is a resend of [1], which was built on the result of merging many branches. Now that most of the branches have been merged to master, I have rebased it on master. The only branch that I needed to merge was js/protocol-advertise-multi. js/protocol-advertise-multi has not been merged to next yet, but the general idea seems good to me, and I am making review of that patch one of my priorities. But if anyone is concerned that this set will be delayed by js/protocol-advertise-multi, I can extract the parts I need into a patch in this set (most likely just the part that unconditionally calls ssh with SendEnv in connect.c), although it is difficult to explain the necessity of that without reference to js/protocol-advertise-multi. Let me know what you think. Besides the rebase, this is unchanged from [1]. There is some discussion there between Ævar, Junio, and I, thinking that it is OK to merge this even if we didn't eliminate all errors. Right now, only 3 test cases fail with GIT_TEST_PROTOCOL_VERSION=2. Patch 1 implements the test variable, patches 2-7 eliminate false negatives (with explanations), and patch 8 fixes a genuine bug. [1] https://public-inbox.org/git/cover.1547677183.git.jonathantanmy@xxxxxxxxxx/ Jonathan Tan (8): tests: define GIT_TEST_PROTOCOL_VERSION tests: always test fetch of unreachable with v0 t5503: fix overspecification of trace expectation t5512: compensate for v0 only sending HEAD symrefs t5700: only run with protocol version 1 tests: fix protocol version for overspecifications t5552: compensate for v2 filtering ref adv. remote-curl: in v2, fill credentials if needed protocol.c | 17 ++++++++-- remote-curl.c | 9 +++++- t/README | 3 ++ t/t5400-send-pack.sh | 2 +- t/t5500-fetch-pack.sh | 4 ++- t/t5503-tagfollow.sh | 2 +- t/t5512-ls-remote.sh | 18 ++++++++--- t/t5515-fetch-merge-logic.sh | 4 +++ t/t5516-fetch-push.sh | 22 ++++++++++--- t/t5539-fetch-http-shallow.sh | 5 ++- t/t5541-http-push-smart.sh | 14 +++++++-- t/t5551-http-fetch-smart.sh | 47 +++++++++++++++++++++------- t/t5552-skipping-fetch-negotiator.sh | 5 ++- t/t5700-protocol-v1.sh | 3 ++ t/t7406-submodule-update.sh | 5 ++- 15 files changed, 128 insertions(+), 32 deletions(-) -- 2.19.0.271.gfe8321ec05.dirty