Git « post-update в локальную папку

Репозиторий Git и тестовый сайт находится на одном хосте. Хочется сделать так: чтобы при пуше в репозиторий, автоматически пулился тестовый сайт. Репозиторий Gitа на gitosis

Использую post-update hook:

#!/bin/sh

PATH=/bin:/usr/bin:/usr/lib:/usr/local/bin

PROJECT_NAME='myproj'
PROJECT_DIR=/var/www-myproj/
PROJECT_ENV='testing'

echo "start $PROJECT_NAME $PROJECT_ENV pulling:$GIT_WORK_TREE"
cd $PROJECT_DIR
git pull origin $PROJECT_ENV
 

если зайти (под рутом) по SSH и запустить post-update то все работает, пулится. Но если со своей домашней машины делаю пуш в репозиторий, то пишет

remote: start myproj testing pulling:         remote: fatal: Not a git repository: '.'
 

не могу понять как так настроить права ли пользователей (и в правах вообще дело)
у папки /var/www-myproj владелец nginx:nginx
post-update выполняется от пользователя gitosis (я так подозреваю)

добавил пользователя gitosis в группу nginx - все равно не работает :/

[root@serv1 hooks]#id gitosis
uid=102(gitosis) gid=103(gitosis) группы=103(gitosis),101(nginx)
 

1 ответов


Вот отличная статья на эту тему. В ней есть рабочий post-update и, к тому же, рассмотрена весьма эффективная схема публикации сайта. http://habrahabr.ru/blogs/Git/127213/


Все из-за переменной окружения GIT_DIR

#!/bin/sh

PATH=/bin:/usr/bin:/usr/lib:/usr/local/bin

PROJECT_NAME='myproj'
PROJECT_DIR=/var/www-myproj/
PROJECT_ENV='testing'

echo "start $PROJECT_NAME $PROJECT_ENV pulling:$GIT_WORK_TREE"
cd $PROJECT_DIR
unset GIT_DIR
git pull origin $PROJECT_ENV