Merge branch 'ss/travis-ci-force-vm-mode'
[gitweb.git] / t / t5702-protocol-v2.sh
index 98fbf39da325ab574f9717a03c6a6588b15f0ffa..6ab8dea8cd896f5c7656755c89cee9759804bef9 100755 (executable)
@@ -79,6 +79,19 @@ test_expect_success 'fetch with git:// using protocol v2' '
        grep "fetch< version 2" log
 '
 
+test_expect_success 'fetch by hash without tag following with protocol v2 does not list refs' '
+       test_when_finished "rm -f log" &&
+
+       test_commit -C "$daemon_parent" two_a &&
+       git -C "$daemon_parent" rev-parse two_a >two_a_hash &&
+
+       GIT_TRACE_PACKET="$(pwd)/log" git -C daemon_child -c protocol.version=2 \
+               fetch --no-tags origin $(cat two_a_hash) &&
+
+       grep "fetch< version 2" log &&
+       ! grep "fetch> command=ls-refs" log
+'
+
 test_expect_success 'pull with git:// using protocol v2' '
        test_when_finished "rm -f log" &&
 
@@ -286,6 +299,10 @@ test_expect_success 'dynamically fetch missing object' '
        grep "version 2" trace
 '
 
+test_expect_success 'when dynamically fetching missing object, do not list refs' '
+       ! grep "git> command=ls-refs" trace
+'
+
 test_expect_success 'partial fetch' '
        rm -rf client "$(pwd)/trace" &&
        git init client &&
@@ -429,6 +446,31 @@ test_expect_success 'fetch supports include-tag and tag following' '
        git -C client cat-file -e $(git -C client rev-parse annotated_tag)
 '
 
+test_expect_success 'upload-pack respects client shallows' '
+       rm -rf server client trace &&
+
+       git init server &&
+       test_commit -C server base &&
+       test_commit -C server client_has &&
+
+       git clone --depth=1 "file://$(pwd)/server" client &&
+
+       # Add extra commits to the client so that the whole fetch takes more
+       # than 1 request (due to negotiation)
+       for i in $(test_seq 1 32)
+       do
+               test_commit -C client c$i
+       done &&
+
+       git -C server checkout -b newbranch base &&
+       test_commit -C server client_wants &&
+
+       GIT_TRACE_PACKET="$(pwd)/trace" git -C client -c protocol.version=2 \
+               fetch origin newbranch &&
+       # Ensure that protocol v2 is used
+       grep "fetch< version 2" trace
+'
+
 # Test protocol v2 with 'http://' transport
 #
 . "$TEST_DIRECTORY"/lib-httpd.sh