Merge branch 'mh/ref-transaction'
[gitweb.git] / t / t5537-fetch-shallow.sh
index 098f220bbee8905989862ef57a5af4391b02d58c..a980574682012fbb3f5f7c28a011df980f45c3de 100755 (executable)
@@ -173,61 +173,17 @@ EOF
        )
 '
 
-if test -n "$NO_CURL" -o -z "$GIT_TEST_HTTPD"; then
-       say 'skipping remaining tests, git built without http support'
-       test_done
-fi
-
-. "$TEST_DIRECTORY"/lib-httpd.sh
-start_httpd
-
-test_expect_success 'clone http repository' '
-       git clone --bare --no-local shallow "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-       git clone $HTTPD_URL/smart/repo.git clone &&
-       (
-       cd clone &&
-       git fsck &&
-       git log --format=%s origin/master >actual &&
-       cat <<EOF >expect &&
-7
-6
-5
+test_expect_success POSIXPERM,SANITY 'shallow fetch from a read-only repo' '
+       cp -R .git read-only.git &&
+       find read-only.git -print | xargs chmod -w &&
+       test_when_finished "find read-only.git -type d -print | xargs chmod +w" &&
+       git clone --no-local --depth=2 read-only.git from-read-only &&
+       git --git-dir=from-read-only/.git log --format=%s >actual &&
+       cat >expect <<EOF &&
+add-1-back
 4
-3
 EOF
        test_cmp expect actual
-       )
-'
-
-# This test is tricky. We need large enough "have"s that fetch-pack
-# will put pkt-flush in between. Then we need a "have" the server
-# does not have, it'll send "ACK %s ready"
-test_expect_success 'no shallow lines after receiving ACK ready' '
-       (
-               cd shallow &&
-               for i in $(test_seq 10)
-               do
-                       git checkout --orphan unrelated$i &&
-                       test_commit unrelated$i &&
-                       git push -q "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" \
-                               refs/heads/unrelated$i:refs/heads/unrelated$i &&
-                       git push -q ../clone/.git \
-                               refs/heads/unrelated$i:refs/heads/unrelated$i ||
-                       exit 1
-               done &&
-               git checkout master &&
-               test_commit new &&
-               git push  "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" master
-       ) &&
-       (
-               cd clone &&
-               git checkout --orphan newnew &&
-               test_commit new-too &&
-               GIT_TRACE_PACKET="$TRASH_DIRECTORY/trace" git fetch --depth=2 &&
-               grep "fetch-pack< ACK .* ready" ../trace &&
-               ! grep "fetch-pack> done" ../trace
-       )
 '
 
-stop_httpd
 test_done