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

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

Ответы

Ответ 1

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

Ответ 2

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

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

  • 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, чтобы увидеть, что было изменено, а затем на основе этой информации вам придется извлечь файл и развернуть его. Это означает, что вам нужно будет создать рабочий каталог и выполнить проверку. Представьте, что разработчик выполняет проверку, а затем ждет, когда ваш крюк post-commit выполнит проверку и развертывание.

То, что вам лучше было бы сделать, это получить что-то вроде Jenkins для выполнения ваших задач фиксации сообщений. Дженкинс обычно является сервером непрерывной сборки. Всякий раз, когда кто-то делает фиксацию, Дженкинс делает проверку в этом проекте и делает сборку. Он может запускать всевозможные тесты, а затем отправлять по электронной почте разработчикам, если есть какие-либо проблемы.

Однако он также может просто выполнить проверку и развертывание, если вам действительно нечего строить. Jenkins использует Java 1.6 для запуска, но в противном случае его довольно легко установить и использовать. Все это управляется меню, и вам не нужно знать, как создавать файлы XML или писать какие-либо программы для его использования.

Итак, взгляните на Дженкинса и посмотрите, что делать с вами. Таким образом, ваши разработчики могут продолжить свою работу, в то время как Дженкинс справится с развертываниями. И вы можете отправить Jenkins по электронной почте, IM, Tweet или даже изменить светофор от зеленого до красного, если есть проблема с развертыванием.