Назад | Перейти на главную страницу

Как я могу настроить SVN для развертывания при фиксации?

Как я могу настроить 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 или один из многих других.