2013-05-07 4 views
0

Я работаю над веб-сайтом на сервере Ubuntu 12.04. Когда я вытаскиваю код на свой сайт, я хочу, чтобы мой крючок автоматически установил код в моей папке apache pull. Следующие команды обновить свой веб-сайт для текущего мастера репозитория без каких-либо проблем:Невозможно потянуть за крючок git (скрипт bash)

cd /var/www/www.foo.net 
git pull 

Моего post-update крюк, что должно делать это автоматически, но я получаю ту же ошибку, каждый раз, когда я толкать. Обратите внимание, что нажатие выполняется правильно каждый раз. Сценарий выглядит следующим образом (не имеет значения кода опущены):

#!/bin/bash 
BRANCH=$(git rev-parse --symbolic --abbrev-ref $1) 
case "$BRANCH" in 
"somebranch") 
     echo "You are pushing to somebranch!" 
     cd /var/www/www.foo.net 
     pwd 
     git pull 
     ;; 
esac 

На мой взгляд, это выглядит, как он должен работать, особенно с учетом того, что выход отладки, что я ожидал, что это будет. Но это не работает. Я всегда получаю следующий результат:

remote: You are pushing to somebranch! 
remote: /var/www/www.foo.net/ 
remote: fatal: Not a git repository: '.' 

Обратите внимание, как он сообщает, что он находится в правильной директории и что, как я уже говорил выше, я могу тянуть в этом каталоге без проблем. /var/www/www.foo.net/является git репозиторий.

Я также пробовал использовать (cd /var/www/www.foo.net/ ; git pull), но безрезультатно. Я также не думаю, что он может иметь какое-либо отношение к разрешениям; Я использую Gitolite и могу подключиться к локальному репозиторию, используя учетную запись, настроенную с Gitolite.

Любые идеи? У меня нет никакой радости.

ответ

1

если /var/www/www.foo.net/ является действительным мерзавец репо попробовать

 

git --git-dir=/var/www/www.foo.net/.git --work-tree=/var/www/www.foo.net pull 

Это должно привести к FF тянуть.

+0

Это действительно так! Вы знаете, почему другое не получилось? –

Смежные вопросы