post-commit-hook.bat (Windows+VisualSVN Server +Trac 0.12) закрыть тикет от коммита

Windows + VisualSVN Server + Trac 0.12

Я хочу, чтобы тикеты автоматически закрывались, когда коммит текста имеет "close #2" (или другую команду, все равно)

2 ответа

Решение

Ну, мой друг, тебе повезло, потому что я наконец понял, как это сделать. У меня такая же конфигурация, как у вас, Windows + VisualSVN + Trac. Это то, что я собрал и собрал из множества мест в сети и моего опыта. Вот так.

  1. Установите VisualSVN.

  2. Создайте (импортируйте...) свой репозиторий. Просто убедитесь, что он есть и правильно работает с VisualSVN. Мы назовем ваш проект TheProject. И скажем, он находится в PathToSVN. Это означает, что если проект находится в C:\SVN\TheProject. Тогда PathToSVN - это C: \ SVN

  3. Убедитесь, что у вас есть хотя бы один пользователь, если вы используете аутентификацию Subversion.

  4. Загрузите дополнение 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/ если есть более новая версия, но вернитесь и следуйте инструкциям здесь. Не те, что там.

  5. Разархивируйте его в папку%VISUALSVN_SERVER% (ваша установочная папка VisualSVN)

  6. Создать папку где-нибудь для вас Trac. например, C:\Trac или D:\Trac. Мы будем называть это PathToTrac\

  7. Разрешить "Полный доступ" к папке PathToTrac\ для встроенной учетной записи сетевой службы (или другой учетной записи, которая используется для запуска службы сервера VisualSVN).

  8. Откройте командную строку и выполните команду

    "%VISUALSVN_SERVER% trac \ trac-admin.bat" PathToTrac\ TheProject initenv

    Используйте настройки по умолчанию. Просто нажмите Enter для всех вопросов.

  9. Выполните следующую команду, чтобы добавить репозиторий TheProject Subversion в Trac:

    "%VISUALSVN_SERVER% trac \ trac-admin.bat" PathToTrac\ Репозиторий TheProject добавить TheProject PathToSVN \ Project svn

  10. Если у вас еще нет python, добавьте системную переменную: PYTHONHOME =%VISUALSVN_SERVER% trac \ python

    Просто убедитесь, что PYTHONHOME указывает на то место, где мы можем найти питона. И высматривать пробелы в конце пути. Windows не нравится это.

  11. Добавьте следующий текст в файл%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 на правильные пути. В текстах

  1. Перезапустите сервер VisualSVN. Запишите номер порта, на котором слушает сервер.

  2. Откройте "http://localhost:port/trac/". Если вы видите Trac для своего хранилища, вы почти закончили. В противном случае вернитесь и проверьте, не пропустили ли вы что-нибудь.

  3. Перейдите в каталог SVN, а затем в свой проект. PathToSVN\TheProject. например, C:\SVN\FirstProject. И вы найдете имя папки с крючками. И в этой папке вы найдете имя файла post-commit.cmd. Если его там нет, тогда создайте его.

  4. Добавьте это в 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%"
    
  5. Загрузите файл trac-post-commit-hook с http://trac.edgewall.org/attachment/wiki/TracMultipleProjects/ComprehensiveSolution/trac-post-commit-hook. Просто перейдите в конец страницы и нажмите "Скачать оригинал". Сохраните его в каталоге PathToSVN\TheProject\hooks. Он должен называться trac-post-commit-hook без расширения.

  6. Теперь перейдите в каталог PathToTrac\TheProject\conf и откройте файл trac.ini. Поиск repository_dir. Добавьте путь к вашему хранилищу в качестве значения, например

     repository_dir = PathToSVN\TheProject
    
  7. Вы сделали!!!

  8. Теперь вы можете закрывать или ссылаться на тикеты непосредственно из ваших коммитов, таких как, исправления #1, закрытие #1 ... Прочитайте комментарии в файле trac-post-commit-hook

Официальная документация Trac включает в себя раздел по автоматическому обновлению билетов на основе сообщений коммитов. Убедитесь, что вы выполняете оба набора инструкций (один для настройки плагина CommitTicketUpdater, а другой для добавления сценариев перехвата).

Вы ищете общий совет или у вас есть конкретный вопрос?

Другие вопросы по тегам