【发布时间】:2012-03-10 22:41:47
【问题描述】:
有一个 Trac 0.11.7 环境,它使用 GitPlugin 与 Git 存储库集成。这个存储库有一个 post-receive 钩子,它是 GitPlugin 团队提供的 copy。
当开发人员将他们的更改推送到服务器时,会触发 post-receive 挂钩。如果包中每个票证包含一个提交,那么一切都会完美运行——各个提交消息与各自的票证相关联。
但是,如果同一票证有多个提交,则只有最新的提交与票证相关联,其余提交将出现以下错误:
处理票证 ID 1 时出现意外错误:列票证、时间、 字段不是唯一的
已经分析了钩子(用 python 编写),看起来函数ticket.save_changes(eml, msg, now, db, cnum + 1) 中的参数now 的时间部分在按顺序处理的提交中仅相差毫秒。
Trac 使用的数据库是 SQLite,它很可能不将毫秒作为日期/时间类型的一部分。
解决上述情况的好方法是什么?
【问题讨论】: