Во-первых, вы, вероятно, не хотите делать это как пост-коммит. Причина в том, что вы не хотите делать что-либо, что занимает слишком много времени в хуке, потому что пользователь должен ждать завершения хука, прежде чем он сможет продолжить.
Чтобы ответить на ваш вопрос, взгляните на каталог репозитория на вашем сервере, вы должны увидеть следующие каталоги и файлы:
- README.txt
- конф
- дб
- Формат
- Крючки
- замки
Один из каталогов называется hooks
. Посмотрите в этом каталоге:
- после commit.tmpl
- после lock.tmpl
- после revprop-change.tmpl
- после unlock.tmpl
- предварительно commit.tmpl
- предварительно lock.tmpl
- предварительно revprop-change.tmpl
- предварительно unlock.tmpl
- старт-commit.tmpl
Это шаблоны для различных хуков. Вы увидите, что это все простые сценарии оболочки BASH / Korn / Bourne. Вы будете использовать команду svnlook
, чтобы получить информацию о ревизии или транзакции (если перехват зафиксирован), которую ваш пользователь только что совершил.
Что вам нужно сделать, это запустить команду svnlook changed
, чтобы увидеть, что было изменено, затем, основываясь на этой информации, вам придется извлечь файл и развернуть его. Это означает, что вам придется создать рабочий каталог и оформить заказ. Представьте, что разработчик выполняет проверку, а затем ждет, пока ваш хук после фиксации выполнит проверку и развертывание.
Что бы вам лучше было сделать, это получить что-то вроде Jenkins для выполнения ваших задач после коммита. Обычно Jenkins - это сервер непрерывной сборки. Всякий раз, когда кто-то делает коммит, Дженкинс проверяет этот проект и делает сборку. Он может запускать всевозможные тесты, а затем отправлять разработчикам по электронной почте сообщения о проблемах.
Однако он также может просто выполнить проверку и развертывание, если вам действительно нечего строить. Дженкинс использует Java 1.6 для запуска, но в остальном его довольно просто установить и использовать. Все это зависит от меню, и вам не нужно знать, как создавать XML-файлы или писать какие-либо программы для его использования.
Итак, взгляните на Дженкинса и узнайте, как выполнить развертывание оттуда. Таким образом, ваши разработчики могут продолжить свою работу, пока Jenkins управляет развертыванием. И вы можете попросить Дженкинса отправить электронное письмо, мгновенное сообщение, чирикать или даже изменить светофор с зеленого на красный, если есть проблема с развертыванием.