让CommitTicketUpdater与svn一起在trac中工作

让CommitTicketUpdater与svn一起在trac中工作,svn,trac,post-commit,Svn,Trac,Post Commit,我与svn一起使用trac作为问题跟踪系统。最近我发现,从trac 0.12(我使用的版本)开始,提交消息还可以使用分布式CommitTicketUpdater(出现在tracopt中)修改票据(添加注释,关闭它们) 这是安装在ubuntu 12.04上的。我的提交后代码非常简单: REV="$2" /usr/bin/trac-admin /var/trac/proj changeset added robo $REV 其中“robo”是我的存储库的名称,如trac中所定义。这实际上相当有效;

我与svn一起使用trac作为问题跟踪系统。最近我发现,从trac 0.12(我使用的版本)开始,提交消息还可以使用分布式CommitTicketUpdater(出现在tracopt中)修改票据(添加注释,关闭它们)

这是安装在ubuntu 12.04上的。我的提交后代码非常简单:

REV="$2"
/usr/bin/trac-admin /var/trac/proj changeset added robo $REV
其中“robo”是我的存储库的名称,如trac中所定义。这实际上相当有效;变更集与svn提交期间写入的提交消息一起出现在trac中。问题不在这里

插件(http://trac.edgewall.org/wiki/CommitTicketUpdater)应在提交消息中查找字符串,如“see#22”或“fix#23”,并更新/关闭相关票据。这在语法上非常灵活。我已经从AdminWeb选项卡启用了插件(并应用了更改),甚至尝试升级(尽管不需要升级)

我在trac.ini文件的[ticket]下配置了插件,因此:

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
这也没什么帮助。以根用户的身份提交,以我自己的身份提交—不是


这就是我停止尝试并请求您帮助的地方。

CommitTicketUpdater
接受更改集的作者进行权限检查(您仍然禁用了权限检查)。它不使用UNIX用户进行任何操作

TRAC\u ADMIN
提供给
anonymous
也不会做任何事情,因为经过身份验证的用户继承了
authenticated
的权限,而不是
anonymous

当您以root用户身份运行
trac admin$ENV changeset added
时,更新票据会起作用,这一事实确实指向(文件系统)权限问题。为什么它不能与
sudo
配合使用有点神秘。请注意,运行
trac admin
的用户需要对所有trac环境具有读写权限

您是使用存储库类型
svn
,还是使用
svn direct
?在后一种情况下,即使您没有写入环境的权限,变更集也会出现在Trac中


我建议将日志级别调到
DEBUG
,看看日志是否告诉了您什么。我还建议加入trac用户邮件列表,并在那里询问。您将接触到更多熟悉Trac设置的人。另外,SO是一个很好的提问平台,但它并不是调试安装的理想平台。

你好,雷米,谢谢你的回答。删除
trac.ini
文件以某种方式解决了问题。我不知道为什么,因为旧的配置文件不见了。无论哪种方式,我都会考虑加入邮件列表进行进一步的调试。正确性:您对提交TypKutuDebug功能的初始断言是错误的。它已经存在很久了,也就是说,我已经在0.10dev中看到了它。
sudo -u root /usr/bin/trac-admin /var/trac/proj changeset added robo $REV