svn - 让 CommitTicketUpdater 在 trac 中与 svn 一起工作

标签 svn trac post-commit

我使用 trac 和 svn 一起作为我的问题跟踪系统。最近我发现,从 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”之类的字符串,并更新/关闭相关票证。这在语法上相当灵活。我已经从管理 Web 选项卡启用了该插件(并应用了更改),甚至尝试升级(尽管不需要升级)。

我已在 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

但我尝试了许多其他变体,包括评论其中一些行。我也尝试过将 [] 放入信封选项中,但这并没有改变。

底线是,当添加变更集时,票证中没有任何变化。

我认为这可能是权限问题。因此,我已将 TRAC_ADMIN 添加到匿名,但这并没有改变任何东西。我意识到我不确定 trac 如何处理 linux 用户;他们不会以任何方式向网络服务器进行身份验证...但是还能怎么做呢?

所以我已经使用 root 进行了 promise ,并且它起作用了。所以这都是关于linux权限的。不过,我的用户属于“svn”组,该组对我的项目文件夹具有写入权限。但这还不够,用 root 提交确实有效。

我的下一个方向是将我自己(以及任何其他提交者)添加到 sudoers,并且无需密码即可操作该 Hook 。

这样做是这样的:我添加了“hansz debi = NOPASSWD:/usr/bin/trac-admin”(其中 debi 是服务器名称,hansz 是我的用户名),并将提交后行修改为:

sudo -u root /usr/bin/trac-admin /var/trac/proj changeset added robo $REV

这也没有帮助。作为根工作和我自己来 promise - 不是。

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

最佳答案

CommitTicketUpdater 采用变更集的作者进行权限检查(并且您仍然禁用了权限检查)。它不使用 UNIX 用户执行任何操作。

TRAC_ADMINanonymous 也不会执行任何操作,因为经过身份验证的用户继承的是 authenticated 的权限,而不是 anonymous.

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

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

我建议将您的日志记录级别提高到DEBUG,看看日志是否告诉您任何信息。我还建议加入 trac-users 邮件列表并在那里提问。您将接触到更多熟悉 Trac 设置的人。此外,SO 是一个很好的提问平台,但它对于调试安装来说并不理想。

关于svn - 让 CommitTicketUpdater 在 trac 中与 svn 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13825992/

相关文章:

.net - 服务 VisualSVN 服务器

svn - 在 TortoiseSVN 中搁置和审查代码

svn - post-commit-hook.bat (Windows+VisualSVN Server +Trac 0.12) 从提交中关闭票证

file - Jenkins 在成功构建后提交文件

linux - SVN提交后不执行

svn - SVN 乌龟提交后失败

svn - 可以 svn 导出并包含未版本控制的文件吗?

css - trac wiki 中页脚的条件格式/自定义

c++ - 从 C/C++ 在 Trac 中自动添加票证的最简单方法

wiki - 在 Trac wiki 中嵌入代码