This is built on master+jt/test-protocol-version, but should apply cleanly to master. After [1] and this patch set, there is only one more small thing to fix or mark GIT_TEST_PROTOCOL_VERSION=0 at master+jt/test-protocol-version. This is very similar to [2], which was neither reviewed nor merged, perhaps because I had another patch [3] that I declared to supersede [2] and that was merged as bd0b42aed3 ("fetch-pack: do not take shallow lock unnecessarily", 2019-01-10). But it turns out that [3] was not enough to make all tests pass with GIT_TEST_PROTOCOL_VERSION=2, hence this patch set. [1] https://public-inbox.org/git/20190322190139.151189-1-jonathantanmy@xxxxxxxxxx/ [2] https://public-inbox.org/git/20181220195349.92214-1-jonathantanmy@xxxxxxxxxx/ [3] https://public-inbox.org/git/20190110193645.34080-1-jonathantanmy@xxxxxxxxxx/ Jonathan Tan (2): fetch-pack: call prepare_shallow_info only if v0 fetch-pack: respect --no-update-shallow in v2 commit.h | 4 ++++ fetch-pack.c | 54 +++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 47 insertions(+), 11 deletions(-) -- 2.21.0.155.ge902e9bcae.dirty