我使用trac作为我的问题跟踪系统和svn一起使用。最近我发现提交消息也可以使用分布式CommitTicketUpdater(出现在tracopt中)从trac 0.12(我使用的版本)开始修改票证(添加注释,关闭它们)。让CommitTicketUpdater在svn的trac中工作
这是安装在Ubuntu 12.04上。我的提交后代码非常简单:
REV="$2"
/usr/bin/trac-admin /var/trac/proj changeset added robo $REV
其中'robo'是我的存储库的名称,如trac中所定义。这实际上工作得很好;变更集以及在svn commit期间写入的提交消息一起出现在trac中。问题不在这里。
插件(http://trac.edgewall.org/wiki/CommitTicketUpdater)应该在提交信息中查找诸如“请参阅#22”或“修复#23”等字符串,并更新/关闭相关故障单。这在语法上非常灵活。我已经从admin web选项卡启用了插件(和应用的更改),甚至尝试升级(尽管不需要升级)。
我已经在我的trac.ini文件,以便配置[票]下的插件:
commit_ticket_update_envelope =
commit_ticket_update_commands.close = close closed closes fix fixed fixes
commit_ticket_update_commands.refs = <ALL>
commit_ticket_update_check_perms = false
commit_ticket_update_notify = false
,但我已经尝试了很多其他的变化,包括一些评论,这些线。我也试着把[]放在信封选项中,但是没有改变。
底线是,虽然添加了变更集,但票证中没有任何变化。
我在想这可能是一个权限问题。因此,我将TRAC_ADMIN添加为匿名,但这并没有改变任何内容。我意识到我不确定trac如何处理linux用户;他们不会以任何方式向Web服务器进行身份验证......但还有其他方法可以完成吗?
所以我已经与根,并且它的工作。所以这是关于linux权限的。虽然,我的用户属于'svn'组,它拥有对我的项目文件夹的全部写入权限。但这并不足够,但是,以作为的工作。
我的下一个方向是将自己(和任何其他提交者)添加到sudoers中,并且没有该钩子操作的密码。我已经添加了'hansz debi = NOPASSWD:/ usr/bin/trac-admin'(其中debi是服务器名称,hansz是我的用户名),并修改了提交后的行:
sudo -u root /usr/bin/trac-admin /var/trac/proj changeset added robo $REV
这并没有帮助。作为根作品,并作为我自己 - 不是。
这是我停止尝试,并寻求你的帮助。
为了正确:您关于CommitTicketUpdater功能外观的初始断言是错误的。它已经存在很久了 - 也就是我已经在0.10dev中看到它了。 – hasienda