Как я могу настроить SVN для развертывания при фиксации? Я хотел бы развернуть, когда сделаю коммит
Вам нужно изменить хук фиксации сообщения. Размещено здесь:
PATH_TO_YOUR_REPO/hooks/post-commit.tmpl
Измените его имя (или создайте новое и сохраните его для использования в будущем) на:
PATH_TO_YOUR_REPO/hooks/post-commit
затем chown
это и chmod
он позволяет вашему пользователю svn (типично apache
) выполнить этот файл:
chown apache.apache PATH_TO_YOUR_REPO/hooks/post-commit
chmod g+x PATH_TO_YOUR_REPO/hooks/post-commit
Предполагая, что вы хотите экспортировать магистраль своего репо на локальный путь, вот что я использую для автоматического развертывания на моем тестовом сервере, который также является моим сервером репо SVN (я не рекомендую использовать это для развертывания на производственных серверах, используйте настраиваемый сценарий для этого). Это будет искать **DEPLOY**
в своем сообщении о фиксации и разверните, только если это так.
#!/bin/sh
REPO="$1"
REV="$2"
if ( svnlook log -r $REV $REPO | grep "**DEPLOY**" ) then
svn export --force -r $REV "file://$REPO/trunk" /var/www/html/yourapp
fi
посмотрите раздел скриптов перехвата на Создание и настройка репозитория вы можете написать сценарий оболочки, чтобы делать что угодно и где угодно ...
Можно, но не рекомендуется использовать ловушку после фиксации. Это заставит разработчика ждать завершения фиксации, пока не завершится выполнение ловушки.
Для профессионального решения следует использовать инструмент непрерывной интеграции, например CruiseControl, Jenkins или один из многих других.