config options receive.<denyNonFastForward, denyDeletes> do not work in nonstandard ref namespaces. I stumbled over it in refs/notes/, but the problem is general. Or if it this intentional, it is the git-config(1) doc of these options which needs fixing. Git version 1.7.4.2. To reproduce: ######################################################################## #!/bin/sh rm -rf hi ho git --version # Create initial repos git init -q hi (cd hi git config receive.denyDeletes true git config receive.denyNonFastForwards true echo foo > foo && git add foo && git commit -q -m first foo) git clone -q hi ho # Make them diverge, except the checked-out branch for r in hi ho; do (cd $r echo $r >> foo && git commit -q -m next foo git update-ref refs/outside/test HEAD git checkout -q -b br HEAD^ # Shut up a bit git config advice.pushNonFastForward false git gc --quiet # For ssh push git update-server-info) done cd ho # Optional; makes no difference #git config remote.origin.pushurl localhost:`pwd`/../hi # Can push test despite 'deny's, fails as expeceted for master: for b in refs/outside/test refs/heads/master; do git push -f origin $b:$b git push -f origin :$b echo "" done # Just to check: Pushing the master normal way fails the same way. git push -f origin ######################################################################## Output: git version 1.7.4.2 To /tmp/hi + 1bb5836...5bf63f8 refs/outside/test -> refs/outside/test (forced update) To /tmp/hi - [deleted] refs/outside/test remote: error: denying non-fast-forward refs/heads/master (you should pull first) To /tmp/hi ! [remote rejected] master -> master (non-fast-forward) error: failed to push some refs to '/tmp/hi' remote: error: denying ref deletion for refs/heads/master To /tmp/hi ! [remote rejected] master (deletion prohibited) error: failed to push some refs to '/tmp/hi' remote: error: denying non-fast-forward refs/heads/master (you should pull first) To /tmp/hi ! [remote rejected] master -> master (non-fast-forward) error: failed to push some refs to '/tmp/hi' -- Hallvard -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html