I've setup a development/testing server where developers can push repositories to a remote repo/webserver via gitolite/git. On the repository site everything works well and developers can use the server however:
Problem:
I want to deploy the code to an apache documentroot (chown'd apache:apcahe and chmod'd 755). I am following these instructions and when edit my post-receive hook as describe like so:
#!/bin/sh
echo "deploying to DocumentRoot"
GIT_WORK_TREE=/var/www/www.example.com git checkout -f
however now when I run git push from my local repo I get permissions errors like:
error: git checkout-index: unable to create file .gitignore (Permission denied)
error: git checkout-index: unable to create file .htaccess (Permission denied)
And my document root is empty...The post-receive hook is running as the user 'gitolite' (not sure whether that's important).
gitolite is already in the sudoers list so I want to run something like:
GIT_WORK_TREE=/var/www/www.example.com sudo git checkout -f
but this doesn't seem to work either, I want to avoid calling a separate shell script if possible.
Any ideas would be really appreciated.