У нас есть промежуточная версия нашего веб-приложения (в основном это рабочая версия подрывной работы, в которой никто не работает), которая живет в «/ apps/software». Каждый разработчик имеет собственную рабочую копию в «~/apps/software». Я хотел бы использовать простой скрипт hook-script после обновления, чтобы обновлять промежуточную копию каждый раз, когда разработчик фиксирует изменение в репозитории.Подрывная атака после фиксации, чтобы обновить версию «промежуточной» версии
Звуки простые правые? Ну, я уже стучал головой о кирпичную стену надолго, чем должен. Скрипт hook (называемый «пост-фиксация», расположенный в/svn/software/hooks, permissions = 777, user: group = apache: dev) выглядит следующим образом (игнорируйте оставшиеся комментарии на данный момент):
#!/bin/sh
/usr/bin/svn update /apps/software >> /var/log/svn/software.log
# REPOS="$1"
# REV="$2"
# AUTHOR=`/usr/bin/svnlook author -r "$REV" "$REPOS"`
# LOG=`/usr/bin/svnlook log -r "$REV" "$REPOS"`
# EMAIL="[email protected]"
# echo "Commit log message as follows:-
#
# \"${LOG}\"
#
# The staging version has automatically been updated.
#
# See http://trac/projects/software/changeset/${REV} for more details." | /bin/mail -s "SVN : software : revision ${REV} committed by ${AUTHOR}" ${EMAIL}
Вот и все. Файл журнала имеет те же права доступа и пользователя: group, что и пост-фиксационный скрипт, и я даже дал промежуточной копии тот же пользователь: группа и разрешения. Сам Apache (мы используем расширение subversion apache) работает под apache: dev. Я знаю, что кадр выполняется, потому что материал, который был прокомментирован выше отправки электронной почты, отлично работает - это просто команда обновления, которой нет.
Я также выполнить пост-фиксации сценарий без переменных окружения с помощью:
$ env - /svn/software/hooks/post-commit /svn/software <changeset>
и он работает нормально, не выполняя «обновление СВН» нет проблем. Я даже попытался удалить «>>» в файл журнала, но это не имеет никакого значения.
Любая помощь по этому вопросу будет самой высокой оценки ...
Не то, чтобы это имело какое-либо отношение к вашей проблеме, но ваш shebang говорит «sh», а тег на вашем вопросе говорит «bash». –
ОК, я пошел за более широким тегом «shell». –