On Wed, Feb 06 2019, Jeff King wrote: > 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. So far we've had the convention that these GIT_TEST_* variables, e.g. the one for the commit graph, work the same way. Thus we guarantee that we get (in theory) 100% coverage even when running the tests in this special mode. I think it's better to keep it as-is.