Subversion Post фиксирует хуки
У меня есть ситуация, когда я обдумываю использование subversion / svn в качестве системы управления репозиторием / версией для проекта. Я пытаюсь выяснить, возможно ли (и если да, то каким образом) иметь возможность использовать систему subversion, на крюке / процессе post commit, чтобы записать пользователя / файл / время (и, возможно, msg) в любой внешний файл (CSV) или MySQL DB.
Как только я смог понять, как вызывать ловушку post commit для записи вывода в файл, я могу затем изменить приложение для отслеживания проблем / приложение проекта, чтобы затем реализовать базовый процесс рабочего процесса, основанный на роли пользователя, а также на успехе / неудаче файлов репозитория.
Короткие образцы / указатели были бы полезны.
Мой тестовый env запускает subversion / svnserve на centos5. Используемые скриптовые языки - Php/Python.
2 ответа
Я бы сказал, что это возможно, но вам нужно немного поработать, чтобы получить имя пользователя, дату и сообщение о коммите.
Subversion вызывает хук post-commit с путем репо и номером ревизии, которая была просто зафиксирована в качестве аргументов.
Для того, чтобы получить информацию, которую вы ищете, вам нужно будет использовать исполняемый файл с именем svnlook
, который в комплекте с Subversion.
Смотрите repo\hooks\post-commit.tmpl для довольно ясного объяснения того, как его использовать
Кроме того, взгляните на svnlook help
, это не сложно использовать.
Действительно, это очень возможно, в корне вашего репозитория должна быть папка с именем hooks, внутри которой должен быть файл с именем post-commit (если нет, создайте его), добавьте туда любой код bash, который вы там поместите, и он будет выполняться после каждой фиксации,
Обратите внимание, что есть 2 переменные, которые передаются в скрипт. $1 - это хранилище, а $2 - номер редакции (я думаю), вы можете использовать эти две переменные для выполнения некоторых команд / запросов svn и извлечения необходимых данных, и делай с этим все, что душе угодно.