fetch-pack: avoid repeatedly re-scanning pack directory
[gitweb.git] / t / t5514-fetch-multiple.sh
index 69c64ab1e4029ce00c4b965cbb30227e269058f1..0f8140957f8080f4a9f3283a1cfef7f3798ae454 100755 (executable)
@@ -27,7 +27,7 @@ test_expect_success setup '
        (
                cd two && git branch another
        ) &&
-       git clone --mirror two three
+       git clone --mirror two three &&
        git clone one test
 '
 
@@ -94,9 +94,6 @@ test_expect_success 'git fetch --multiple (but only one remote)' '
 cat > expect << EOF
   one/master
   one/side
-  origin/HEAD -> origin/master
-  origin/master
-  origin/side
   two/another
   two/master
   two/side
@@ -105,6 +102,7 @@ EOF
 test_expect_success 'git fetch --multiple (two remotes)' '
        (git clone one test4 &&
         cd test4 &&
+        git remote rm origin &&
         git remote add one ../one &&
         git remote add two ../two &&
         git fetch --multiple one two &&
@@ -117,4 +115,70 @@ test_expect_success 'git fetch --multiple (bad remote names)' '
         test_must_fail git fetch --multiple four)
 '
 
+
+test_expect_success 'git fetch --all (skipFetchAll)' '
+       (cd test4 &&
+        for b in $(git branch -r)
+        do
+               git branch -r -d $b || break
+        done &&
+        git remote add three ../three &&
+        git config remote.three.skipFetchAll true &&
+        git fetch --all &&
+        git branch -r > output &&
+        test_cmp ../expect output)
+'
+
+cat > expect << EOF
+  one/master
+  one/side
+  three/another
+  three/master
+  three/side
+  two/another
+  two/master
+  two/side
+EOF
+
+test_expect_success 'git fetch --multiple (ignoring skipFetchAll)' '
+       (cd test4 &&
+        for b in $(git branch -r)
+        do
+               git branch -r -d $b || break
+        done &&
+        git fetch --multiple one two three &&
+        git branch -r > output &&
+        test_cmp ../expect output)
+'
+
+test_expect_success 'git fetch --all --no-tags' '
+       >expect &&
+       git clone one test5 &&
+       git clone test5 test6 &&
+       (cd test5 && git tag test-tag) &&
+       (
+               cd test6 &&
+               git fetch --all --no-tags &&
+               git tag >output
+       ) &&
+       test_cmp expect test6/output
+'
+
+test_expect_success 'git fetch --all --tags' '
+       echo test-tag >expect &&
+       git clone one test7 &&
+       git clone test7 test8 &&
+       (
+               cd test7 &&
+               test_commit test-tag &&
+               git reset --hard HEAD^
+       ) &&
+       (
+               cd test8 &&
+               git fetch --all --tags &&
+               git tag >output
+       ) &&
+       test_cmp expect test8/output
+'
+
 test_done