]> Pileus Git - ~andy/git/blobdiff - t/t5510-fetch.sh
Merge branch 'maint'
[~andy/git] / t / t5510-fetch.sh
index 426017e1d08aad5aa3a92f9473e02defc4b10aaf..35889c0a125fffdfb556ec521d61c18ac4e96c17 100755 (executable)
@@ -67,6 +67,18 @@ test_expect_success "fetch test for-merge" '
        cut -f -2 .git/FETCH_HEAD >actual &&
        diff expected actual'
 
+test_expect_success 'fetch tags when there is no tags' '
+
+    cd "$D" &&
+
+    mkdir notags &&
+    cd notags &&
+    git init &&
+
+    git fetch -t ..
+
+'
+
 test_expect_success 'fetch following tags' '
 
        cd "$D" &&
@@ -145,4 +157,75 @@ test_expect_success 'bundle does not prerequisite objects' '
        test 4 = $(git verify-pack -v bundle.pack | wc -l)
 '
 
+test_expect_success 'bundle should be able to create a full history' '
+
+       cd "$D" &&
+       git tag -a -m '1.0' v1.0 master &&
+       git bundle create bundle4 v1.0
+
+'
+
+test "$TEST_RSYNC" && {
+test_expect_success 'fetch via rsync' '
+       git pack-refs &&
+       mkdir rsynced &&
+       cd rsynced &&
+       git init &&
+       git fetch rsync://127.0.0.1$(pwd)/../.git master:refs/heads/master &&
+       git gc --prune &&
+       test $(git rev-parse master) = $(cd .. && git rev-parse master) &&
+       git fsck --full
+'
+
+test_expect_success 'push via rsync' '
+       mkdir ../rsynced2 &&
+       (cd ../rsynced2 &&
+        git init) &&
+       git push rsync://127.0.0.1$(pwd)/../rsynced2/.git master &&
+       cd ../rsynced2 &&
+       git gc --prune &&
+       test $(git rev-parse master) = $(cd .. && git rev-parse master) &&
+       git fsck --full
+'
+
+test_expect_success 'push via rsync' '
+       cd .. &&
+       mkdir rsynced3 &&
+       (cd rsynced3 &&
+        git init) &&
+       git push --all rsync://127.0.0.1$(pwd)/rsynced3/.git &&
+       cd rsynced3 &&
+       test $(git rev-parse master) = $(cd .. && git rev-parse master) &&
+       git fsck --full
+'
+}
+
+test_expect_success 'fetch with a non-applying branch.<name>.merge' '
+       git config branch.master.remote yeti &&
+       git config branch.master.merge refs/heads/bigfoot &&
+       git config remote.blub.url one &&
+       git config remote.blub.fetch "refs/heads/*:refs/remotes/one/*" &&
+       git fetch blub
+'
+
+# the strange name is: a\!'b
+test_expect_success 'quoting of a strangely named repo' '
+       ! git fetch "a\\!'\''b" > result 2>&1 &&
+       cat result &&
+       grep "fatal: '\''a\\\\!'\''b'\''" result
+'
+
+test_expect_success 'bundle should record HEAD correctly' '
+
+       cd "$D" &&
+       git bundle create bundle5 HEAD master &&
+       git bundle list-heads bundle5 >actual &&
+       for h in HEAD refs/heads/master
+       do
+               echo "$(git rev-parse --verify $h) $h"
+       done >expect &&
+       diff -u expect actual
+
+'
+
 test_done