как установить svn post-commit hook - PullRequest
       15

как установить svn post-commit hook

14 голосов
/ 28 сентября 2011

Я использую SVN в Linux. Я надеялся запустить автоматическое развертывание после фиксации. Судя по моим поискам, похоже, что svn post-commit может помочь. Но я не смог найти SVN post-commit из моей установки SVN. Интересно, это отдельная установка? Есть ли какой-нибудь хук после фиксации SVN, который я могу загрузить и установить?

Ответы [ 2 ]

21 голосов
/ 28 сентября 2011

Во-первых, вы, вероятно, не хотите делать это как пост-коммит. Причина в том, что вы не хотите делать что-либо, что занимает слишком много времени в хуке, потому что пользователь должен ждать завершения хука, прежде чем он сможет продолжить.

Чтобы ответить на ваш вопрос, взгляните на каталог репозитория на вашем сервере, вы должны увидеть следующие каталоги и файлы:

  • 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 управляет развертыванием. И вы можете попросить Дженкинса отправить электронное письмо, мгновенное сообщение, чирикать или даже изменить светофор с зеленого на красный, если есть проблема с развертыванием.

15 голосов
/ 28 сентября 2011

Это не отдельная установка.В вашем каталоге репозитория есть каталог 'hooks'.Вы можете найти post-commit.tmpl, просто измените файл и переименуйте его в исполняемый файл в соответствии с вашим типом ОС.

...