Subversion Hook - PullRequest
       42

Subversion Hook

8 голосов
/ 24 ноября 2008

Я работаю в проекте, в котором есть файлы конфигурации, по одному для каждой среды, в которой будет развернуто приложение.

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

Как мы можем этого достичь?

Ответы [ 2 ]

12 голосов
/ 24 ноября 2008

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

Вы можете писать хуки на любом языке, на котором вы можете написать приложение командной строки. Единственное, что нужно, это то, что они запускаются в контексте сервера SVN, и (по крайней мере, традиционно, я не знаю, улучшается), им не дают много среды, когда они запускаются - вы можете быть обнаружены отсутствием 'PATH', например.

В вашем репозитории будут примеры хуков batchfile / shell-script в каталоге 'hooks', но в прошлом я также писал их на C #.

Это http://wordaligned.org/articles/a-subversion-pre-commit-hook выглядит как хорошее общее введение в хуки перед фиксацией.

1 голос
/ 24 ноября 2008

Нет, чтобы получить информацию о транзакции, ваш скрипт может просто запросить svn о деталях. И SVN может предоставить эту информацию, она не должна быть на том же сервере.

Он имеет в виду, что когда subversion выполняет ваш хук, он запускает без среды и самого сервера svn . Любые внешние ресурсы, которые могут понадобиться вашей ловушке svn, должны быть доступны учетной записи сервера svn. Исходя из того, что вы спрашиваете, это может не быть проблемой, если вы не нуждаетесь в каком-либо внешнем доступе к базе данных или чем-то подобном для сравнения транзакции с *.

Лучше всего взглянуть на некоторые из подрывных хуков , которые поставляются с svn для примера. Также Аргументы SVN-хука перечисляют, как вызывается каждый хук.

...