Merge branch 'maint'
[gitweb.git] / t / t5516-fetch-push.sh
index 8f024a08f0b175c12747c33ac0a07cacb73937d9..c31e5c1c525eea5a9f4677b03c5d7314d70c6136 100755 (executable)
@@ -1016,4 +1016,31 @@ test_expect_success 'push --prune refspec' '
        ! check_push_result $the_first_commit tmp/foo tmp/bar
 '
 
+for configsection in transfer receive
+do
+       test_expect_success "push to update a ref hidden by $configsection.hiderefs" '
+               mk_test heads/master hidden/one hidden/two hidden/three &&
+               (
+                       cd testrepo &&
+                       git config $configsection.hiderefs refs/hidden
+               ) &&
+
+               # push to unhidden ref succeeds normally
+               git push testrepo master:refs/heads/master &&
+               check_push_result $the_commit heads/master &&
+
+               # push to update a hidden ref should fail
+               test_must_fail git push testrepo master:refs/hidden/one &&
+               check_push_result $the_first_commit hidden/one &&
+
+               # push to delete a hidden ref should fail
+               test_must_fail git push testrepo :refs/hidden/two &&
+               check_push_result $the_first_commit hidden/two &&
+
+               # idempotent push to update a hidden ref should fail
+               test_must_fail git push testrepo $the_first_commit:refs/hidden/three &&
+               check_push_result $the_first_commit hidden/three
+       '
+done
+
 test_done