如何让Trac(CommitTicketUpdater)在提交时用Mercurial关闭|解决工单?
我有个简单的问题: 一切看起来都正常,除了Trac的工单在提交后没有状态更新。变更集的备注会添加到工单上,但工单本身并没有被解决
我刚刚完成了这个设置:
- Windows 7 x64
- IIS 7.5
- isapi-wsgi 0.4.2
- Python27 32
- Mercurial 1.8
- Trac 0.12
我已经让Trac运行起来,并且和代码库连接上了(我可以查看变更集,浏览等)
我使用AD进行身份验证,所以我的用户名都是这种格式:MYDOMAIN\bbarker
按照说明设置了CommitTicketUpdater,具体可以参考这里。
当我提交新代码并链接到一个工单时:
$ hg commit -m "[fixes #1] - blah blah blah..."
$ hg push
Trac会把一个变更集添加到工单上:
5秒前由 MYDOMAIN\bbarker 修改
在 [29283792837498273948729374]:
[fixes #1] - blah blah blah...
(上面的#1是指向工单的链接)
但是工单的状态从来没有更新,无论我尝试什么方法。
我还需要做什么才能让这个功能正常工作吗?
以下是我的设置的一些片段
trac.ini
[components]
tracext.hg.* = enabled
tracopt.ticket.commit_updater.* = enabled
tracopt.ticket.commit_updater.committicketreferencemacro = enabled
tracopt.ticket.commit_updater.committicketupdater = enabled[hg]
node_format = short
show_rev = yes[ticket]
...
commit_ticket_update_envelope = []
commit_ticket_update_commands.close =
commit_ticket_update_commands.refs = <ALL>
commit_ticket_update_check_perms = true
commit_ticket_update_notify = true[trac]
...
repository_dir = C:\repositories\project
repository_sync_per_request = default
repository_type = hg
.hg/hgrc
[hooks]
; 如果在Trac插件目录中安装了mercurial插件
commit = python:C:\Trac\hooks.py:add_changesets
changegroup = python:C:\Trac\hooks.py:add_changesets[trac]
env = C:\Trac\tracproject
trac-admin = C:\Python27\Scripts\trac-admin.exe
1 个回答
呼!终于搞定了...
我之前完全按照Trac网站上的指示来操作,结果出错了。
嗯,算是吧。
我基本上是把网站上的内容复制到了我的trac.ini文件里:
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
看下面的内容时,我以为把commit_ticket_update_commands.close留空就会用默认设置。
其实这样会把默认值覆盖成空值,这就是为什么我的命令都没用,但我的提交信息还是被加到了对应的票据上。
所以简单地删除或者注释掉那一行就解决了我的问题。
(也就是没有覆盖默认值)
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
经过一些调试、测试和网上查找后,我发现我只需要重新看看Trac提供的说明。现在回头看,这点真是显而易见 :)