git push origin DENIED by fallthru, hook declined: gitolite

teak picture teak · May 3, 2012 · Viewed 36k times · Source

I am having a problem pushing with git using Gitolite.
When I try this:

git push origin :refs/tags/deployment

I get this error:

remote: D NAME/install.py repos michael DENIED by fallthru
remote: error: hook declined to update refs/tags/deployment
To gitolite@admin:repos
 ! [remote rejected] deployment (hook declined)
error: failed to push some refs to 'gitolite@admin:repos'

I have given the group deploy [of which the user michael is a member of] permission to delete branches in the Gitolite config:

@deply  =   michael

repo  repos

        RWD    =   @deply

I have seen this post: "Unable to push in Git. Why?"

But I am not using any hooks that I am aware of and cannot find anything thing else that might relate.

Is there something im missing perhaps?
Has anybody come across this?

Answer

Mike picture Mike · May 3, 2012

You need RW+ permission for ref changes/deletion

RW+, for "push -f" or ref deletion allowed (i.e., destroy information)

Also, if you're using V2 this may apply:

RWD and RW+D, for ref deletion. Once you use this in a repo, a normal RW+ can no longer delete a ref; it can only rewind

Sources:

http://sitaramc.github.com/gitolite/g2/conf.html

http://sitaramc.github.com/gitolite/rules.html