使用trac进行项目管理
正在使用trac进行知识管理和项目管理,整理一下资料,以便分享。
国内关于trac详细使用介绍的不多,下文介绍的不错。红色的注意是我一些使用的经验补充。
trac概述
概念
开发流程
增加新特性
修正Bug
- wiki文件, 功能說明, 目标方向 等等.
- ticket:用于Bug报告、系统增强请求。
- 报告者
- 类型(缺陷?增强?...)
- 相关项目哪个部分(Component)
- 相关项目哪个版本
- 关键字,便于检索
- 优先级
- 相关哪个待发布版(blocking that release)
- 属于谁:谁负责解决
- Cc:逗号分隔的用户或电子邮件地址,他们需要获得ticket变更的通知
- 解决方案:总结为何此ticket被关闭
- 状态:该ticket所处的状态
- 简述:简述该ticket
- 详细描述
- Roadmap:列出系统中未来的发布,与这些发布相关的tickets 。依照 Ticket 设定, Ticket 可以指向某個 Milestone, 以便追踪目前完成进度. 项目进度分成哪些阶段, 可以看目前进度狀況, 也可以确认是否有走错方向。
- Milestones:系统(待)发布版。Milestones可以给出描述和目标日期。
- Timeline:可以查看何时有修改,被谁修改,修改了什么东西。按发生的顺序,列出所有trac中已发生的事件(以事件简述、适用哪里、事件触发者的形式)。可以看看最近有哪些頁面被更新过, 可以快速跟上进度.下述类型的事件被列出:
- Wiki页事件:创建和改变
- Ticket事件:创建和解决/关闭(以及其他改变)
- 源代码改变事件:Repository check-ins
- Milestone:里程碑版相关变动
· Browse Source: 可以看到修改记录 版本比对 等信息.
· View Tickets - 看现在有哪些 Tickets, 依照下述来分类Tickets. 看目前有哪些 Ticket, 看哪些还沒有完成(常用: My Tickets, Active Tickets)
-
- Active Tickets - 目前有哪些 Tickets 是 Active 的
- Active Tickets by Version
- Active Tickets by Milestone - 靠 Milestone 來分 Active Tickets
- Assigned, Active Tickets by Owner
- Assigned, Active Tickets by Owner (Full Description)
- All Tickets By Milestone (Including closed) - 列出所有 Tickets
- My Tickets - 列出属于自己的 Tickets
- Active Tickets, Mine first - 列出所有 Active Tickets, 依照重要性排列
- New Ticket - 建立新的 Ticket
· New Ticket: 於 Roadmap 做好阶段性的安排后, 再依阶段性任务做更詳細的安排, 並分小项目來开 Ticket.(Bug 可以当 Milestone 來列, 也可以当 Ticket 來慢慢开)
- Wiki上开一页的新特性提议列表
- 开发者根据上表,Wiki上开一页新特性计划实现列表
- 新建ticket(类型为enhancement)
- ticket附加到milestone
- ticket指派给一个开发者,该开发者负责解决此ticket
- (版本管理程序中)创建一个分支(每个ticket对应一个分支)
- 进行代码修改
- (版本管理程序中)融合
- 解决ticket
说明:对于新增特性的ticket,分支的命名可为:feature-ticket号-特性描述,并留下类似评论:“Branched to add xxx. See ticket #nn. ”。新的特性完成后,则融合并留下类似评论:“Addresses ticket #nn by implementing xxx.”。当条件成熟时,把那个支打上标签,进行发布。
- 新建ticket(类型为defeat)
- <重复ticket?>——>解决为“duplicate”,增加评论:“该ticket为xxx的重复”
- <含有足够的信息进行处理?>——>要求报告者提供更多信息
- <可重现?>
- 分优先级
- <是否修正之?> 否——>解决为“wontfix”
- 附加到合适milestone上
- 指派给开发者修正
- (版本管理程序中)在相关的发布标记的支中分支
- 进行修改
- (版本管理程序中)融合相关修改到对应支中
- 解决ticket
说明:对于解决Bug的ticket,分支命名为bug-“ticket号”,留下类似评论:"Branched to fix ticket #nn – Bug的描述."
trac链接
Trac链接是Trac的一个基础特性。通过它,可以轻松地在支持任何wiki语法之处,超链接系统的不同实体——任务单(tickets)、报表(reports)、变更集(changesets)、wiki页面、里程碑(milestones)和源代码文件。 Trac链接通常以type:id(id代表实体的数字、名字或路径)的形式,但一些经常用到的实体有缩记符号。
适用场合
trac链接的高级用法
相对链接
wiki内的互链
trac互链
可在如下场合使用:
- 源代码(Subversion)提交的日志信息
- Wiki页
- 任务单(tickets)、报表(reports)和里程碑(milestones)的详细描述。
还有其他明确的标明支持wiki语法的文本域。 一些例子:
- 任务单(tickets):#1 或 ticket:1
- 任务单评论(ticket comments):comment:ticket:1:2
- 报表(reports):{1} 或 report:1
- 变更集(Changesets):!r1, ![1], changeset:1 或 (有限使用) ![1/trunk], changeset:1/trunk, [2:5/trunk]
- 修订日志(revision log):r1:3, [1:3] 或 log:@1:3, log:trunk@1:3
- 差异(diffs) (需要Trac版本0.10以上):diff:@1:3, diff:tags/trac-0.9.2/wiki-default//tags/trac-0.9.3/wiki-default 或 diff:trunk/trac@3538//sandbox/vc-refactoring@3539
- Wiki页面:CamelCase 或 wiki:CamelCase
- 父页面:[..]
- 里程碑(milestones):milestone:1.0
- 附件(attachment):attachment:ticket:944:attachment.1073.diff
- 软件版本仓库中的文件:source:trunk/COPYING
- 软件版本仓库中文件的某个特定修正版: source:/trunk/COPYING@200
- 软件版本仓库中文件的某个特定修正版的某行:source:/trunk/COPYING@200#L25
创建指向页面的某个锚(anchor),使用"#",比如 [#Relativelinks relative links] 提示:当你移动鼠标到段的标题上,一个“¶”字符将会显现。这是一个只向该段的链接,用它可以拷贝该段的锚(anchor)。 创建指向一个子wiki页面,只要使用“/”,比如 WikiPage/SubWikiPage 或 ./SubWikiPage 在子wiki页面创建指向父wiki页面的链接,使用“..”,比如 [..] 链接到兄弟页面,使用“../”,比如[../Sibling see next sibling]
注意:如果是中文,连接名前要加个‘a',比如有一段名为:“第一段”,在后面对其引用为[#a第一段],直接输入中文有问题。如果想要此链接显示中不带a,改为[#a第一段 第一段]。
其他前缀可以任意定义,用来指向其他web应用的资源。这些前缀的定义和指向web应用的URL在此说明。
trac互链是专门面向链接其他trac项目中的资源。 任何类型的trac链接可以写成trac环境和实际指向那个trac环境资源的引用,之间用冒号隔开。
注意:trac在显示页面时对页面进行翻译,将其中对应标记的记号替换为超链接,即意味着被不是在trac中写的,但是被trac引用的文档中的标记都会被翻译,例如如果在版本控制的commit注释中的文字如果按照wiki格式也会被解释,故可以在commit注释中与trac的wiki或者ticket等相关联。
新建wiki
新建wiki页的步骤
wiki页的命名
CamelCase
- 决定wiki页的名字。
- 编辑某个存在的wiki页面 (或其他支持 Wiki语法的资源),增加一个只向你新的wiki页的链接。保存更改。
- 点击指向你新wiki页的链接。Trac将会显示一个 "describe PageName here" 的信息。
- 点击 "Edit this page" 按钮,来增加、编辑新wiki页的内容。保存更改。
- 现在,你的新wiki已经发布了。
你也可以在页面顶端的搜索框,输入CamelCase方式的名字,来跳过第二步。但是当心,这样做,该wiki页将成为“孤儿”页,直到你在别的地方建立指向它的链接。 (在浏览器地址栏中,直接输入URL:dev.lemote.com/code/{当前项目名}/wiki/新的wiki页名称,也可以达到类似的效果)
wiki页的命名
Wiki页命名一般遵循CamelCase规范。Wiki文本中, 任何符合CamelCase形式的单词自动转换为一个指向以此单词命名的wiki页。 CamelCase的wiki页名必须符合以下规则:
- 名子必须只能含有字母。不能含数字、空格、标点符号或下划线。
- 名字必须至少含两个大写字母。
- 名字首字母必须大写。
- 每个大写的字母其后必须是一个以上的小写字母。
- 在wiki页命名中,可以使用斜杠(/)(可能是代表一种层次关系)
如果你想创建不遵循CamelCase规则命名的wiki页,你可以使用如下语法:
注意:中文几乎只能采用如下方法。
- [wiki:Wiki_page], [wiki:ISO9000]
- [wiki:"Space Matters"] 这个页名内含空格
- 或更简单的: ["WikiPageName"]s (!MoinMoin的内部自由链接风格)
从Trac 0.11版开始,可以指定到Wiki页的一个特定版本,比如:http://dev.lemote.com/code/demo/wiki/WikiStart?version=1 另外,可以在Wiki名后尾随一个锚(anchor),来指向wiki页的某个特定段。是否有锚,可以简单的通过移动鼠标指针到段头,看到其后出现的“¶”标志,也可以明确指定。
CamelCase
CamelCase是最初的wiki创建超链接的规范,额外要求大写的字母其后为小写字母。于是,“AlabamA” 与 “ABc”不是链接。
自定义Wiki行为
某些人不喜欢通过CamelCase进行链接这种方式。 虽然Trac仍旧忠实的遵循最初wiki风格,但其提供了一组满足不同喜好用户的链接方式。
-
- 一种方式 ([wiki]中的ignore_missing_pages) 是,当链接是CamelCase方式时,简单地忽略不存在的wiki页,而非此单词灰显后跟问号。
- 另一种方式([wiki]中的split_page_names),显示时,在CamelCase风格的链接的多个单词间自动插入空格符。
- 明确地创建Wiki链接也很容易,见wiki页的命名
- 另外,Wiki格式化显示可以在某些地方禁用。 (例如显示提交日志时)