Trac票证不会通过SVN钩子更新

时间:2013-08-14 10:17:09

标签: svn trac

我在服务器上完成了Trac和SVN设置。我使用post commit hook和post-revprop-change hook集成了SVN-Trac。当我执行提交时,我可以看到trac上的时间线得到更新,但相应的故障单没有更新任何评论或更改状态。我曾尝试在google和stackoverflow上查找此类问题,但几乎所有这些都在linux / unix环境中都有权限问题,这很可能不是我的情况。显然我在我的Windows环境中没有任何权限问题,因为我正在使用我的登录名运行trac和svn。

请查看下面提到的设置详情:

服务器操作系统:Windows 2008 R2

- 使用以下方法安装Wandisco SVN服务器:WANdiscoSubversion_1.7.8-2.exe

- Python 2.7.5(32位)

- Trac 1.0.1

我需要集成SVN-Trac,以便SVN使用traclink提交更新trac票证状态和注释。

为实现这一目标,我在SVN中设置了提交后挂钩,如Trac文档中所述:http://trac.edgewall.org/wiki/TracRepositoryAdmin#ExplicitSynchttp://trac.edgewall.org/wiki/CommitTicketUpdater

我做了以下更改:

  1. 通过trac网络界面启用提交票据更新程序 - > admin - >插件。

  2. 根据上面提到的trac上CommitTicketUpdater的文档,我在[components]部分的trac_env / conf / trac.ini下的trac.ini中另外添加了以下行。 tracopt.ticket.commit_updater.committicketreferencemacro =启用 tracopt.ticket.commit_updater.committicketupdater = enabled

  3. 配置提交更新程序插件,将以下内容添加到trac.ini文件的[ticket]部分

    [票] commit_ticket_update_envelope = []

    commit_ticket_update_commands.close =关闭关闭修复修复修复

    commit_ticket_update_commands.refs =地址引用引用参见

    commit_ticket_update_check_perms = true

    commit_ticket_update_notify = true

  4. 我还创建了post-commit.bat和post-revprop-change.bat ,并将其添加到我的svn存储库中的hooks文件夹中。请在下面找到脚本代码:

    -commit.bat交

    @echo off
    ::
    :: Trac-SVN post commit hook for explicit synchronisation
    ::
    
    setlocal
    
    set REPOS=%1
    set REV=%2
    
    C:\Python27\Scripts\trac-admin.exe C:\apps\new changeset added "%REPOS%" "%REV%"
    

    post-revprop-change.bat

    @echo off
    ::
    :: Trac-SVN post revprop change hook
    ::
    
    setlocal
    
    set REPOS=%1
    set REV=%2
    
    C:\Python27\Scripts\trac-admin.exe C:\apps\new changeset modified "%REPOS%" "%REV%"
    

    我也尝试检查trac.log(在Debug级别设置),但没有任何相关内容登录。

    我还打印了post commit hook中的值,它们看起来很好。

    有人可以帮我解决上述问题吗?

    谢谢!

    此致

    Sowmya Dass

1 个答案:

答案 0 :(得分:0)

用于调用提交挂钩的用户应该获得必要的权限(可能是TICKET _...)。

如果您不关心权限检查,您也可以使用[trac] commit_ticket_update_check_perms = false(如上面已经评论的RjOllos)。