On Tue, Feb 05, 2019 at 04:21:14PM -0800, Jonathan Tan wrote: > 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. Thanks for working on this. With the exception of the final patch, this all seems pretty sane to me from a quick look. There is one thing that your test patches made me wonder. When we have to make an exception to a test (i.e., that doesn't work under v2), you do it by unsetting GIT_TEST_PROTOCOL_VERSION in the environment. That means we'll actually run the test, but not with the version that the caller specified. I wonder if it would be more obvious what's going on if we instead had a prereq like: test_expect_success !PROTO_V2 'ls-remote --symref' ' ... ' and just skipped those tests entirely (and in a way that appears in the TAP output). I think it would also future-proof us a bit for v2 becoming the default (i.e., when GIT_TEST_PROTOCOL_VERSION being blank does mean "use v2"). I dunno. It probably doesn't matter all that much, so it may not be worth going back and changing at this point. Just a thought. -Peff