使用Git提交消息在Trac中关闭票证

时间:2011-06-20 12:02:28

标签: git trac

我尝试将Trac与Git一起使用。

  1. 我已经配置了Git插件 - 它 显示存储库和变更集 “浏览源”选项卡正确。
  2. 启用了CommitTicketUpdater 插件,配置它:关闭 身份验证,设置不使用任何 括号,左侧关键字为默认值。
  3. 添加了一些门票。
  4. 使用包含“close#5”的消息完成提交。
  5. Trac看到票号(在变更集中它被标记为红色并链接到票证)但是没有关闭票号5.可能出错了什么?

    TIA

5 个答案:

答案 0 :(得分:0)

如果我关注documentation,您应该尝试使用closes #5。如果仍然无效,请尝试检测post-commit-hook is correctly configured

#XXX是引用XXX票证的标准Trac / Wiki语法,另一方面,[YYYY]将引用YYYY提交,即使没有提交后,它也将始终有效 - 钩被定义。

请务必按following this link

激活post-commit-hook

答案 1 :(得分:0)

我放弃了Trac,转而使用Redmine。它现在好一点 - 提交给定票证的Id对票证的引用,但是再次 - “修正#1”没有关闭票号1 ... Afaik Redmine不需要挂钩..

答案 2 :(得分:0)

你是如何使用trac存储库的?通常,您在要推送到的服务器上运行trac。推送后挂钩不会运行。

在这种情况下,你需要一个post-receive钩子。 我对git-plugin包中的post-receive挂钩进行了一些更改,因为它有一些bug。 (例如,你只能在trac中对一张票进行一次更改/秒,所以我必须添加一个sleep(1),因为当你推送你所有的提交时都会在同一秒内处理。你也可以提供一些工作时间)

这个post-receive钩子可以在我的github上找到:https://github.com/JensTimmerman/TRAC-SVN-to-GIT-migration/blob/master/hooks/trac-post-receive-hook.py

你必须将它安装到/path/to/your/.git/hooks/post-receive 并确保它是可执行的(linux中的chmod + x /path/to/your/.git/hooks/post-receive)并更改“TRAC_ENV ='/ home / jens / tractest /'”以指向您的trac环境。

编辑:

如果您没有在运行trac的同一服务器上托管git存储库,则可以执行拉动到临时git repo并再次使用cron作业进行一次trac使用。然后,这将再次触发真实存储库上的post-receive挂钩并更新您的trac。

我有这个:

a64609@chaos:~/git$ ls
gitcron.log  realrepo  syncgit.sh  tmprepo

其中tmprepo只是我拉动和推送的位置,而realrepo有我的后接收挂钩。 使用syncgit.sh:

cd /home/username/git/tmprepo;
git pull;
git push real;

将tmprepo的远程“真实”设置为

a64609@chaos:~/git/tmprepo$ git remote -v show
origin  https://JensTimmerman@github.com/hpcugent/easybuild.git
real    ../realrepo/

并且所有内容都通过crontab条目同步(将其放在crontab -e中)

*/3 * * * * /hhome/username/git/syncgit.sh  >> /home/username/git/gitcron.log 2>&1

答案 3 :(得分:0)

我遇到了同样的问题。 git CommitTicketUpdater插件似乎默认使用该术语的方括号,例如[关闭#5]另请参阅此blog entry中的commit_ticket_update_envelope的trac.init

答案 4 :(得分:0)

如果有帮助,我用以下内容填写我的trac ini:

[票] commit_ticket_update_commands.close = close

官方文档声称如果你将'commit_ticket_update_commands.close ='留空,则提交者更新将使用一些默认关键字来决定是否必须关闭故障单,但这对我不起作用。唯一有效的方法是在该字段中显式设置一些关键字,例如(commit_ticket_update_commands.close = close)