post-commit-hook.bat (Windows+VisualSVN Server +Trac 0.12) закрыть тикет от коммита
Windows + VisualSVN Server + Trac 0.12
Я хочу, чтобы тикеты автоматически закрывались, когда коммит текста имеет "close #2" (или другую команду, все равно)
2 ответа
Ну, мой друг, тебе повезло, потому что я наконец понял, как это сделать. У меня такая же конфигурация, как у вас, Windows + VisualSVN + Trac. Это то, что я собрал и собрал из множества мест в сети и моего опыта. Вот так.
Установите VisualSVN.
Создайте (импортируйте...) свой репозиторий. Просто убедитесь, что он есть и правильно работает с VisualSVN. Мы назовем ваш проект TheProject. И скажем, он находится в PathToSVN. Это означает, что если проект находится в C:\SVN\TheProject. Тогда PathToSVN - это C: \ SVN
Убедитесь, что у вас есть хотя бы один пользователь, если вы используете аутентификацию Subversion.
Загрузите дополнение VisualSVN Trac по адресу: http://www.visualsvn.com/files/VisualSVN-Server-2.5.4.28066-Trac-0.12.3.zip.
NB Проверьте http://www.visualsvn.com/server/trac/ если есть более новая версия, но вернитесь и следуйте инструкциям здесь. Не те, что там.Разархивируйте его в папку%VISUALSVN_SERVER% (ваша установочная папка VisualSVN)
Создать папку где-нибудь для вас Trac. например, C:\Trac или D:\Trac. Мы будем называть это PathToTrac\
Разрешить "Полный доступ" к папке PathToTrac\ для встроенной учетной записи сетевой службы (или другой учетной записи, которая используется для запуска службы сервера VisualSVN).
Откройте командную строку и выполните команду
"%VISUALSVN_SERVER% trac \ trac-admin.bat" PathToTrac\ TheProject initenv
Используйте настройки по умолчанию. Просто нажмите Enter для всех вопросов.
Выполните следующую команду, чтобы добавить репозиторий TheProject Subversion в Trac:
"%VISUALSVN_SERVER% trac \ trac-admin.bat" PathToTrac\ Репозиторий TheProject добавить TheProject PathToSVN \ Project svn
Если у вас еще нет python, добавьте системную переменную: PYTHONHOME =%VISUALSVN_SERVER% trac \ python
Просто убедитесь, что PYTHONHOME указывает на то место, где мы можем найти питона. И высматривать пробелы в конце пути. Windows не нравится это.
Добавьте следующий текст в файл%VISUALSVN_SERVER%conf\httpd-custom.conf, если вы используете аутентификацию Subversion:
LoadModule python_module "trac/python/mod_python_so.pyd" LoadModule authz_user_module bin/mod_authz_user.so <Location /trac> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir PathToTrac PythonOption TracUriRoot /trac AuthName "Trac" AuthType Basic AuthBasicProvider file AuthUserFile "PathToSVN/htpasswd" Require valid-user </Location>
или этот текст, если вы используете аутентификацию Windows:
LoadModule python_module "trac/python/mod_python_so.pyd"
LoadModule authz_user_module bin/mod_authz_user.so
<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir PathToTrac
PythonOption TracUriRoot /trac
AuthName "Trac"
AuthType VisualSVN
# Set the option's value to on if Windows Basic Authentication
# is enabled, otherwise set it to off.
AuthnVisualSVNBasic on
# Set the option's value to on if Windows Integrated Authentication
# (available in the Enterprise Edition) is enabled, otherwise set it to off.
AuthnVisualSVNIntegrated on
require valid-user
</Location>
УБЕДИТЕСЬ, чтобы заменить PathToSVN и PathToTrac на правильные пути. В текстах
Перезапустите сервер VisualSVN. Запишите номер порта, на котором слушает сервер.
Откройте "http://localhost:port/trac/". Если вы видите Trac для своего хранилища, вы почти закончили. В противном случае вернитесь и проверьте, не пропустили ли вы что-нибудь.
Перейдите в каталог SVN, а затем в свой проект. PathToSVN\TheProject. например, C:\SVN\FirstProject. И вы найдете имя папки с крючками. И в этой папке вы найдете имя файла post-commit.cmd. Если его там нет, тогда создайте его.
Добавьте это в post-commit.cmd (просто откройте его в текстовом редакторе) и сохраните.
@set PATH=%PYTHONHOME%;%PATH% @set REPOS="%1" @set REV="%2" @set TRAC_ENV="PathToTrac\TheProject" @for /F %%A in ('svnlook author -r "%REV%" %1') do set AUTHOR=%%A @for /F "delims==" %%B in ('svnlook log -r "%REV%" %1') do set LOG=%%B @call "%VISUALSVN_SERVER%trac\python\python.exe" "PathToSVN\TheProject\hooks\trac-post-commit-hook" -p "%TRAC_ENV%" -r "%REV%" -u "%AUTHOR%" -m "%LOG%"
Загрузите файл trac-post-commit-hook с http://trac.edgewall.org/attachment/wiki/TracMultipleProjects/ComprehensiveSolution/trac-post-commit-hook. Просто перейдите в конец страницы и нажмите "Скачать оригинал". Сохраните его в каталоге PathToSVN\TheProject\hooks. Он должен называться trac-post-commit-hook без расширения.
Теперь перейдите в каталог PathToTrac\TheProject\conf и откройте файл trac.ini. Поиск repository_dir. Добавьте путь к вашему хранилищу в качестве значения, например
repository_dir = PathToSVN\TheProject
Вы сделали!!!
Теперь вы можете закрывать или ссылаться на тикеты непосредственно из ваших коммитов, таких как, исправления #1, закрытие #1 ... Прочитайте комментарии в файле trac-post-commit-hook
Официальная документация Trac включает в себя раздел по автоматическому обновлению билетов на основе сообщений коммитов. Убедитесь, что вы выполняете оба набора инструкций (один для настройки плагина CommitTicketUpdater, а другой для добавления сценариев перехвата).
Вы ищете общий совет или у вас есть конкретный вопрос?