使用trac的主要功能
管理trac网站功能
默认情况下,trac普通用户可以做日常开发需要的所有活动。然而,执行更高级的任务,比如创建里程碑、报告或者增加新的投票类型,则需要额外的权限。
查看trac当前权限设置:
trac-admin /home/trac/test/ permission list
为用户开通管理员权限:
trac-admin /home/trac/test permission add marshal TRAC_ADMIN
开通管理员权限后,在web界面中增加了一个admin菜单项,里面是管理员的一些设置和功能。
管理用户账户
默认安装的trac,管理用户账户是十分不方便的。web admin界面为管理员提供了为用户增加权限的功能,但是不能直接创建和删除用户。如果需要,必须通过apache的htpasswd等工具执行(如果安装了svnmanager,可以有之解决)。
或者,通过第三方插件解决这个问题:
借助python的easy_install工具,安装插件是否容易:
easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk
安装完毕,需要重启apache使插件生效。
如果需要卸载该插件,可:
easy_install -m
http://trac-hacks.org/svn/accountmanagerplugin/trunk
如果能够通过svnmanager管理用户账户,这个功能可以忽略。
使用wiki功能定制trac网站
trac是一个以wiki为基础的应用程序。团队成员在具备相应权限后可编辑任何页面,而且可以很容易的创建新的页面,用来描述特定项目的特定内容。
trac的在线帮助有详细的wiki语法描述。wiki系统的语言格式都很近似,特别是和moinmoin比较。
wiki的命名
驼峰式的命名,比如HelloWorld,就会被当做一个wiki页面链接。为了避免成为链接可以:
!HelloWorld
对于汉语,这种方式不够友好,可以这样:
[wiki:HelloWorld 你好,世界]
trac的wiki可以使用子页面:
HelloWorld/SubHelloWorld
wiki中使用的链接类型
trac比较有特点的是url可以定位很多问题管理相关的资源:
投票的链接:
This revision corrects the issues #123, #125 and #245
svn源代码链接,甚至可以定位到代码的行和版本:
see source:/trunk/src/main/java/com/wakaleo/JavaLamp.java@10#L50
记录代码变化的内容和相关日志:
delivered in changeset:186
里程碑的链接:
planned for milestone:milestone1
报告的链接:
listed in this report:7
版本差异的链接:
the class as shown here: diff:
/trunk/src/main/java/com/wakaleo/JavaLamp.java@10:11
wiki中的代码显示
比如java代码,可以这样:
{{{
#!javapublic void main(){
System.out.println("hello");
}
}}}
使用trac投票管理系统
投票是trac的主要功能。投票可用于保持对bug的跟踪,以及需求、特性、任务和其他任何事物的变化。
创建投票(传票)
trac的传票系统简单而富有扩展性,因为没有强制字段,可以在描述字段中写入wiki格式内容。传票的类型可以扩展或者做文字修改。
可以为传票定义属性:
- priority:优先级
- severity:猛烈程度,比如bug,默认安装的trac没有severity的值,需要通过admin界面自行添加
- milestone和version:里程碑和版本,用于QA和项目管理
- component:用于标识软件的子模块
- assigned:指派给哪个用户
trac传票的生命周期
- leave as new:保持新提交的状态,一般用于修改其他传票属性;
- resolve as:一旦选择其中之一,将被关闭;
- reassign to:指派给其他团队成员;
- accept:自己接受这个传票;
- reopen:已经关闭的传票还可以重新打开。
svn提交日志中如果带传票号,比如:
$ svn commit \ -m "Corrected the Catalog file loader. This fixes the bug raised in #123."
那么trac中可以通过timeline(时间线)或者browse source(浏览源代码)查看到该日志。
从0.11开始,还可以定制工作流,需要设置trac.ini文件,详情参见trac在线帮助的TracWorkflow部分。
通过subversion更新trac问题条目
可以为svn增加提交代码后的钩子函数,实现在svn提交日志中包含某些关键字后,自动修改传票状态,比如改为fix或者close。或者只是为传票增加一些信息。
定制trac传票项
如果不需要某个传票项,比如severity,只需删除所有该列表条目,trac就不会在传票属性中列出它。
默认情况下assigned to项是普通文本框,如果想显示为列表显示所有团队成员,需要修改trac.ini文件,增加:
[ticket]
restrict_owner = true
修改后不需要重启apache即可生效。
可以为trac传票增加额外的项,方法是修改trac.ini文件,在[ticket-custom]块中增加配置。比如增加一个使用何种操作系统的项:
[ticket-custom]
os = selectos.label = Operating System
os.options = All|Windows|Mac|Linux|Other
os.value = 1
项的类型对应html可以是:
设置邮件通知
trac通过邮件通知用户。可以在trac.ini文件的[notifications]部分设置。默认情况下邮件通知是关闭的。打开这个功能,需要:
smtp_enabled=true
以下是完整的示例:
[notification] smtp_enabled = true use_tls = true mime_encoding = base64 smtp_server = smtp.gmail.com smtp_port = 587 smtp_user = user smtp_password = password
必须设置smtp_from或smtp_replyto(或两者), 否则Trac拒绝发送提醒邮件。
当然,这要求用户填写了自己的email地址,可在preferences链接的表单填写。
使用trac查询和报告功能
很长一段时间里,trac用户通过数据库的SQL实现报表功能。虽然现在还可以使用这样的方法,trac提供了更直观的trac查询语言,可通过web界面设置并且能直接在wiki页面中使用。
trac预制了一些查询报表脚本,可以直接使用或者做一些修改。
trac提供了query link,可以产生自定义的交互查询界面,比如以下代码将被生成为一个链接,点击进入带查询表单的页面,可以交互式的产生报告:
[query:status=new|assigned|reopened]
通过trac路线图和时间线管理开发过程
trac里程碑
里程碑用于计划、跟踪和发布项目进程。
里程碑是迭代增量开发中的每次迭代单位的目标集合。
时间线视图
时间线,用于项目的详细活动密切监控。
浏览源代码库
trac提供了对后台svn仓库完整的web访问功能。可以查看所有目录和文件及其最近的修订版号。点击修订版号查看修改日志。查看两个修订版之间的改动。还可以浏览指定的修订版源文件。
使用RSS和ICalendar
使用RSS
对于每天并不想很频繁的访问trac,或者不想打开新的web窗口访问trac的用户,可以使用rss订阅trac的timeline项目数据。
使用ICalendar
对路线图任务数据,可以导出为icalendar格式的文件,使用outlook、notes、Evolution等日历软件打开,如果日历软件支持,还可以订阅远程日志,这样和服务器保持同步。
测试了一下,在vista的windows日历,可以订阅远程日历。
通过python定制wiki
trac的页面可扩展,而且易于配置。除了编辑wiki页面的文本和布局外,还可以使用宏插入动态内容。
比如插入图片的宏:
[[Image(screenshot.gif)]]
生成最近修改wiki页面列表的宏:
[[RecentChanges(Wiki,5)]]
传票查询方面的宏:
[[TicketQuery(status=assigned)]]
另外,trac有大量的第三方宏,见:
日志引用
这篇文章上的评论的 RSS feed TrackBack URI