Я пытаюсь заставить хук выполнить на сервере, когда на моем локальном компьютере запущен «git push». Я могу вытолкнуть код с локального компьютера, и когда я запускаю «git pull» из командной строки на сервере, изменения корректно вытягиваются.
Вот как выглядит каталог hooks:
sbirds@[xxx].com [~/public_html/app]# ls -l .git/hooks/
total 32
drwxr-xr-x 2 sbirds sbirds 2048 Mar 31 18:41 ./
drwxr-xr-x 8 sbirds sbirds 2048 Mar 31 18:33 ../
-rwxr-xr-x 1 sbirds sbirds 452 Mar 30 00:24 applypatch-msg.sample*
-rwxr-xr-x 1 sbirds sbirds 896 Mar 30 00:24 commit-msg.sample*
-rwxr-xr-x 1 sbirds sbirds 160 Mar 30 00:24 post-commit.sample*
-rwxr-xr-x 1 sbirds sbirds 552 Mar 30 00:24 post-receive.sample*
-rwxr-xr-x 1 sbirds sbirds 45 Mar 31 18:31 post-update*
-rwxr-xr-x 1 sbirds sbirds 189 Mar 30 00:24 post-update.sample*
-rwxr-xr-x 1 sbirds sbirds 398 Mar 30 00:24 pre-applypatch.sample*
-rwxr-xr-x 1 sbirds sbirds 1578 Mar 30 00:24 pre-commit.sample*
-rwxr-xr-x 1 sbirds sbirds 4951 Mar 30 00:24 pre-rebase.sample*
-rwxr-xr-x 1 sbirds sbirds 1239 Mar 30 00:24 prepare-commit-msg.sample*
-rwxr-xr-x 1 sbirds sbirds 3611 Mar 30 00:24 update.sample*
Пока я просто запускаю простой скрипт, который создает новый каталог. Когда я запускаю этот скрипт вручную из командной строки как пользователь "sbirds", он успешно создает каталог. Вот как выглядит скрипт:
sbirds@[xxx].com [~/public_html/app]# cat .git/hooks/post-update
#!/bin/sh
mkdir $HOME/public_html/app/hook_folder
Файл конфигурации:
sbirds@[xxx].com [~/public_html/app]# cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = sbirds@[xxx].com:/home/sbirds/repositories/app.git
fetch = +refs/heads/*:refs/remotes/origin/*
Информация об ОС:
sbirds@[xxx].com [~/public_html/app]# cat /proc/version
Linux version 2.6.18-028stab070.5 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Fri Sep 17 15:37:23 MSD 2010
Любой совет о том, что я делаю неправильно, был бы очень признателен.