【发布时间】:2013-08-14 10:17:09
【问题描述】:
我在我的服务器上完成了 Trac 和 SVN 设置。我已经使用 post-commit 钩子和 post-revprop-change 钩子集成了 SVN-Trac。当我执行提交时,我可以看到 trac 上的时间线正在更新,但相应的票证没有更新任何 cmet 或更改状态。我曾尝试在 google 和 stackoverflow 上查看此类问题,但几乎所有这些问题在 linux/unix 环境中都有权限问题,这很可能不是我的情况。显然我在我的 Windows 环境中没有任何权限问题,因为我正在使用我的登录名运行 trac 和 svn。
请找到下面提到的设置详细信息:
服务器操作系统:Windows 2008 R2
- 使用 :WANdiscoSubversion_1.7.8-2.exe 安装的 Wandisco SVN 服务器
- Python 2.7.5(32 位)
- Trac 1.0.1
我需要集成 SVN-Trac,以便 SVN 使用 traclink 提交更新 trac 票证状态和 cmets。
为了实现这一点,我在 SVN 中设置了提交后挂钩,如 Trac 文档中所述:http://trac.edgewall.org/wiki/TracRepositoryAdmin#ExplicitSync 和 http://trac.edgewall.org/wiki/CommitTicketUpdater。
我做了以下改动:
通过 trac Web 界面 -> 管理员 -> 插件启用提交票证更新程序。
1234563
tracopt.ticket.commit_updater.committicketreferencemacro = 已启用
tracopt.ticket.commit_updater.committicketupdater = 启用
-
配置提交更新插件,将以下内容添加到 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
我还创建了 post-commit.bat 和 post-revprop-change.bat 并将其添加到我的 svn 存储库中的 hooks 文件夹中。请在下面找到脚本代码:
post-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 钩子中的值,它们似乎没问题。
谁能帮我解决上述问题?
谢谢!
问候
苏米亚·达斯
【问题讨论】:
-
好的。我什至无法看到正在记录的失败消息,以便我能够进一步调试它。有什么线索吗?
-
我尝试按照建议删除步骤 3 中提到的设置,但它不起作用。
-
显然在我修复了 Trac 权限后它开始正常工作。我授予匿名用户票务管理员权限,它开始工作得很好。当我们从 post commit hook 运行 trac-admin 命令时,我们需要确保用户也具有修改票证的权限。您如何管理设置中的 Trac 权限?
-
如果您不关心权限检查,您也可以使用
[trac] commit_ticket_update_check_perms = false,但请参阅我在 trac-users 邮件列表上的reply 了解更多具体细节。