Teach git-fetch to exploit server side automatic tag following
[gitweb.git] / t / t5404-tracking-branches.sh
index 20718d4679f7206d5e039142e4f549f87935fd4b..1493a92c06d041e502bcc08a1cee95e6758f1775 100755 (executable)
@@ -19,7 +19,7 @@ test_expect_success 'setup' '
        git commit -a -m b2
 '
 
-test_expect_success 'check tracking branches updated correctly after push' '
+test_expect_success 'prepare pushable branches' '
        cd aa &&
        b1=$(git rev-parse origin/b1) &&
        b2=$(git rev-parse origin/b2) &&
@@ -31,10 +31,23 @@ test_expect_success 'check tracking branches updated correctly after push' '
        git commit -a -m aa-b2 &&
        git checkout master &&
        echo aa-master >>file &&
-       git commit -a -m aa-master &&
-       git push &&
+       git commit -a -m aa-master
+'
+
+test_expect_success 'mixed-success push returns error' '! git push'
+
+test_expect_success 'check tracking branches updated correctly after push' '
+       test "$(git rev-parse origin/master)" = "$(git rev-parse master)"
+'
+
+test_expect_success 'check tracking branches not updated for failed refs' '
        test "$(git rev-parse origin/b1)" = "$b1" &&
        test "$(git rev-parse origin/b2)" = "$b2"
 '
 
+test_expect_success 'deleted branches have their tracking branches removed' '
+       git push origin :b1 &&
+       test "$(git rev-parse origin/b1)" = "origin/b1"
+'
+
 test_done