post-commit-hook.bat(Windows + VisualSVN Server + Trac 0.12)关闭来自提交的票证

时间:2012-11-15 12:11:04

标签: svn hook trac visualsvn-server post-commit

Windows + VisualSVN Server + Trac 0.12

我想,当提交文本有“关闭#2”(或其他命令,都是相同的)时,票据会自动关闭

2 个答案:

答案 0 :(得分:2)

Trac的官方文档包含automatically updating tickets based on commit messages部分。确保遵循两个指令集(一个用于设置CommitTicketUpdater插件,另一个用于添加挂钩脚本)。

您是在寻找一般性建议,还是有特定问题?

答案 1 :(得分:2)

好吧,我的朋友,你很幸运,因为我终于弄清楚如何做到这一点。我有与你相同的配置,Windows + VisualSVN + Trac。 这就是我从网上的一堆地方和我的经验中收集和整理的内容。 我们走了。

  1. 安装VisualSVN。

  2. 创建(导入...)您的存储库。只要确保它在那里并与VisualSVN一起正常工作。我们将调用您的项目 TheProject 。并说它位于 PathToSVN 这意味着项目是否在C:\ SVN \ TheProject中。然后 PathToSVN 是C:\ SVN

  3. 如果您使用Subversion身份验证,请确保您拥有至少一个用户

  4. http://www.visualsvn.com/files/VisualSVN-Server-2.5.4.28066-Trac-0.12.3.zip下载VisualSVN Trac插件 注:如果有更新的版本,请检查http://www.visualsvn.com/server/trac/,但请返回并按照此处的说明操作。不是那里的人。

  5. 将其解压缩到%VISUALSVN_SERVER%文件夹(您的VisualSVN安装文件夹)

  6. 在某处为Trac创建一个文件夹。例如C:\ Trac或D:\ Trac。我们将其称为 PathToTrac \

  7. 允许"完全控制"访问 PathToTrac \ 文件夹,以获取内置网络服务帐户(或用于运行VisualSVN服务器服务的其他帐户)。

  8. 打开命令提示符并执行命令

    <强>&#34;%VISUALSVN_SERVER%TRAC \ TRAC-admin.bat&#34; PathToTrac \ TheProject initenv

    使用默认设置。只需按Enter键即可查看所有问题。

  9. 执行以下命令将 TheProject Subversion存储库添加到Trac:

    <强>&#34;%VISUALSVN_SERVER%TRAC \ TRAC-admin.bat&#34; PathToTrac \ TheProject 存储库添加 TheProject PathToSVN \ Project svn

  10. 如果您还没有使用python,请添加系统变量: PYTHONHOME =%VISUALSVN_SERVER%trac \ python

    确保PYTHONHOME指向我们可以找到python的地方。  并留意路径尽头的空间。 Windows并不喜欢它。

  11. 如果您使用 Subversion身份验证,请将以下文本添加到文件%VISUALSVN_SERVER%conf \ httpd-custom.conf中:

    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>
    
  12. 如果您使用 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. 打开&#34; http:// localhost:port / trac /&#34;如果您可以看到存储库的Trac,那么您几乎已经完成了。否则,请回去查看是否遗漏了任何内容。

    3. 转到SVN目录,然后转到项目。 PathToSVN \ TheProject。例如C:\ SVN \ FirstProject。你会发现一个文件夹名称 hooks 。在该文件夹中,您将找到文件名 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. http://trac.edgewall.org/attachment/wiki/TracMultipleProjects/ComprehensiveSolution/trac-post-commit-hook下载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文件中的注释