1

我正在为 Trac 编写一个插件。每次插件从 Git post-receive 钩子接收一些数据时,我想在时间线中添加一个事件。

查看时间线 API,您似乎只能添加新的事件源。因此,您负责检索和显示数据。我宁愿将我的活动保存到现有来源。

我应该在哪里查看 Trac API 以保存事件?

ps:我的计划是像Github这样的代码依赖远程存储库和远程Web界面。

pss:时间线必须显示来自主项目 git 存储库及其克隆的提交。我不想托管与项目有关的每个存储库的副本。

4

1 回答 1

2

时间线 API 比您需要做的要高一个级别。ChangesetModule中有一个通用的 VCS 实现,它将变更集(事件)检索本身委托给 VCS-specific Repository。因此,您应该改为实现版本控制 API

API 是为“拉模型”设计的,其中 Trac 在构建时间线时会查询 VCS。如果您真的更喜欢“推送模型”(为什么?),您可以尝试将 CacheRepository 实现作为基础,将事件注入缓存,或者只是从头开始编写事件存储库。请注意,这违背了现有设计的原则,并且很可能是不必要的额外工作。

我建议你改用普通的拉模型,它会更容易和更干净。您可以使用Subversion 实现Mercurial 实现作为参考,并且可能使用GitPythongit.

于 2009-03-11T23:57:51.300 回答