Git Pull в CGI и командной строке имеют разные результаты
У меня есть веб-крючок "после нажатия" на GitHub, который вызывает CGI-скрипт для обновления веб-сайта Jekyll.
Сценарий:
user@server [~/_repo]# cat cgi-bin/githook.cgi
#!/bin/bash
echo Content-type: text/plain
echo
if [ -z "$HOME" ] ; then
HOME=/home/user
fi
GIT_REPO=$HOME/_repo
PUBLIC_WWW=$HOME/public_html
pushd $GIT_REPO
git pull
echo "$HOME/.rvm/bin/ts_jekyll build --source $GIT_REPO --destination $PUBLIC_WWW"
$HOME/.rvm/bin/ts_jekyll build --source $GIT_REPO --destination $PUBLIC_WWW
popd
echo DONE
GitHub сохраняет вывод скрипта как:
~/_repo ~/public_html/cgi-bin
Updating OLD_COMMIT_SHA..NEW_COMMIT_SHA
/home/user/.rvm/bin/ts_jekyll build --source /home/user/_repo/ --destination /home/user/public_html
Configuration file: /home/user/_repo/_config.yml
Source: /home/user/_repo/
Destination: /home/user/public_html
Generating...
done.
Auto-regeneration: disabled. Use --watch to enable.
~/public_html/cgi-bin
DONE
Это ожидаемый вывод, но сайт не обновляется.
Когда я вхожу с SSH и запускаю user@server [~]# _repo/cgi-bin/githook.cgi
Я обычно получаю точно такой же вывод снова, и сайт корректно обновляется.
Если я внесу изменения в локальную копию, веб-хук все равно будет работать (хотя и не должен), и версия в командной строке покажет соответствующее сообщение о перезаписи локальных изменений.
Что может быть причиной этого?