Trac+subversion拥有强大的bug管理能力
来源:互联网 发布:下载录制屏幕软件 编辑:程序博客网 时间:2024/05/17 00:03
Trac 介绍
版权声明:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2007/02/10/trac-intro/以及本声明。
今天介绍一下Trac,一个基于Web的bug管理系统。
- Trac官方主页
- Trac示例
Trac拥有强大的bug管理功能,并集成了Wiki用于文档管理。它还支持代码管理工具Subversion,这样可以在 bug管理和Wiki中方便地参考程序源代码。
bug管理
在Trac中,项目中出现的问题称为ticket。像bug、功能改进、 TODO等都可以写成一个ticket。
- 可设置ticket的优先级别。
- 可以设置ticket的里程碑,表明这个ticket应在何时完成,并能够通过条形图方式显示里程碑的完成度。
- 可以自定义条件生成bug报告,并可以通过SQL语句自定义报告的格式。
Subversion集成
通过Subversion集成,开发者可在Trac中以Web方式浏览代码库中各个版本的代码和代码的修改历史,并可方便地比较各个版本间的差别。
Wiki
支持常用的Wiki语法。同时增加了许多bug管理的专用标记,可以方便地创建到ticket、代码行甚至修改历史的链接。
Trac使用Python写成,后台使用SQLite或PostgreSQL数据库,因此构筑一个完整的Trac系统需要安装以下软件:
- Apache
- Python
- Subversion
- PostgreSQL(可选)
下回继续介绍Trac的安装方法。
基于Trac的项目管理系统构建(Windows篇)
版权声明:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2007/02/11/trac-install-windows/以及本声明。
关于Trac的介绍请参见前一篇文章。
这里我们要构建一个基于Trac的项目管理系统。代码管理使用subversion,项目管理使用Trac。所需要的软件包如下:
- Trac 0.10,Trac程序
- Apache 2.0.59,Web服务器
- subversion 1.4.3,代码版本管理工具
- Python 2.4.4,Python解释器
- mod_python,Python的Apache模块
- ClearSilver 0.9.4,Python的模版工具
- mxDateTime 2.0.3,Python必须库文件
- PostgreSQL 8.2.3,数据库服务器
- pyPgSQL 2.5.1,Python访问PostgreSQL数据库的模块
很遗憾subversion现在仍然不支持最新的Apache 2.2系列,因此我们只能使用Apache 2.0系列。而pyPgSQL 2.5.1版和ClearSilver 0.9.4不支持Python 2.5,因此只能用 Python 2.4。
另外,虽然Trac支持SQLite,但SQLite支持的SQL语法有限,实际应用中会有诸多不便,因此我们选择了PostgreSQL作为后台数据库。
安装错误时怎么办?
如果你安装过程中发现某些地方不正常,记住按照下面的方法来纠正:
- 查看错误信息,看是否能找到提示
- 检查有无忘了装的软件
- 检查httpd.conf是否有误
- 修改之后记得重新启动Apache
安装Apache和subversion
在Apache官方网站上下载2.0.59版的msi安装包,执行即可。为方便起见,建议将Apache安装到根目录下,例如 D:/Apache。安装时的一些细节可以参考这篇文章。安装完毕后用浏览器访问 http://localhost/ ,如能看到Apache的起始页面即安装成功。
从subversion上下载zip包解压缩即可,目前最新版本为svn-win32-1.4.3.zip。假设解压到 D:/svn下。
然后将subversion与Apache集成在一起(也可参考这篇文章)。将 D:/svn/bin 下的以下文件复制到 D:/Apache/Apache2/modules 目录下:
- mod_authz_svn.so
- mod_dav_svn.so
将 D:/svn/bin 下的以下文件复制到 D:/Apache/Apache2/bin 目录下:
- libdb44.dll
- intl3_svn.dll
然后建立代码仓库目录 D:/repos。
然后修改 D:/Apache/Apache2/conf/httpd.conf,查找下面这一行,去掉前面的 # 号。
LoadModule dav_module modules/mod_dav.so
然后在其附近添加以下这一行:
LoadModule dav_svn_module modules/mod_dav_svn.so
之后在 httpd.conf 的末尾添加以下内容:
<Location /repos>
DAV svn
SVNParentPath D:/repos
</Location>
然后重新启动Apache。之后试着访问一个不存在的页面,如 http://localhost/abc,你会看到Not Found页面下方的内容如下:
Apache/2.0.59 (Win32) SVN/1.4.3 DAV/2 Server at localhost Port 80
如果这里显示了 SVN/1.4.3 则说明安装成功。
安装Python、mod_python和SVN binding
从Python官方网站下载Python 2.4的msi安装包进行安装,假设安装到D:/Python24目录下。
从mod_python的下载页面 上下载mod_python 3.3.0b的Win32版(mod_python-3.3.0b.win32-py2.4-Apache2.0.exe)。安装时它会问你Apache的安装位置,输入 D:/Apache/Apache2 即可。
最后打开 D:/Apache/Apache2/conf/httpd.conf,查找 LoadModule,加入下面这一行:
LoadModule python_module modules/mod_python.so
然后重新启动Apache。之后试着访问一个不存在的页面,如 http://localhost/abc,你会看到Not Found页面下方的内容如下:
Apache/2.0.59 (Win32) SVN/1.4.3 mod_python/3.3.0b Python/2.4.4 DAV/2 Server at localhost Port 80
如果这里显示了 mod_python/3.3.0b Python/2.4.4 则说明安装成功。
最后要安装subversion binding使Python支持subversion。到刚才下载subversion的地方 下载 svn-win32-1.4.3_py2.4.exe 文件并安装。
安装PostgreSQL和pyPgSQL
到PostgreSQL官方主页下载最新版8.2.3(postgresql-8.2.3-1.zip)并安装。
为了让Python支持PostgreSQL,我们还需要安装pyPgSQL模块。到pyPgSQL主页下载2.5.1版并安装。
安装结束之后,需要将 bin 目录下的以下文件复制到 D:/Python24/Lib/site-packages/pyPgSQL/libpq 下。
- libpq.dll
- comerr32.dll
- libeay32.dll
- libintl-2.dll
- libiconv-2.dll
- krb5_32.dll
- ssleay32.dll
安装ClearSilver和mxDateTime
在ClearSilver的下载页面选择0.9.4的py2.4版下载 (win32/clearsilver-0.9.14.win32-py2.4.exe)并安装。
Trac官方文档中虽然没有说明mxDateTime,但是建立项目时Trac会报错,要求你安装mxDateTime库。从mxDateTime主页下载并安装。
安装Trac
最后终于轮到主角Trac出场了。在Trac下载页面上下载 Trac安装程序(trac-0.10.3.win32.exe)并安装。
然后建立项目目录 D:/projects。
然后打开 D:/Apache/Apache2/conf/httpd.conf,在最末尾添加以下内容:
<Location /projects>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir D:/projects
PythonOption TracUriRoot /projects
</Location>
然后重新启动Apache,访问 http://localhost/projects/,你会看到Available Projects字样,则说明安装成功。至此安装全部完毕。
建立项目
下面我们要建立一个实际开发中使用的项目。我们为这个项目命名为 hello。
首先要建立一个代码仓库。打开命令行,输入以下命令:
D:
cd D:/repos
md hello
cd hello
D:/svn/bin/svnadmin create .
然后打开浏览器,访问 http://localhost/repos/hello/ 。如果你上面的设置都正确,你将会看到下面的内容:
Revision 0: /
----------------------------------------------
Powered by Subversion version 1.4.3 (r23084).
即说明代码仓库建立成功,而 http://localhost/repos/hello/ 就是代码仓库的 URL。
然后建立数据库。从开始菜单中启动PostgreSQL的 pg Admin III工具,新建一个数据库 hello,注意将字符编码设置为UTF8。
然后建立Trac项目。打开命令行,输入以下命令:
D:
cd D:/projects
D:/Python24/python.exe D:/Python24/Scripts/trac-admin hello initenv
trac-admin 为Trac的管理工具,hello为项目名,initenv命令指示Trac新建一个项目。然后按照下面的内容输入:
Project Name [My Project]> Hello World
Database connection string [sqlite:db/trac.db]> postgres://<username>:<password>@localhost/hello
Repository type [svn]> svn
Path to repository [/path/to/repos]> D:/repos/hello
Templates directory [D:/Python24/share/trac/templates]>
数据库连接那一行,<username>和<password>分别为安装PostgreSQL时设置的用户名和密码。如果创建失败,则需要删除 D:/projects/hello 之后再重试。
最后打开浏览器,访问 http://localhost/projects/hello 即可看到Trac的界面了。
设置HTTP认证
在Trac界面右上方有个Login菜单,通过这个菜单登录之后,创建bug或者做其他修改时就不用每次都输入用户名。不过这个菜单需要单独配置才能正常工作。
首先我们要生成密码文件。打开命令行,输入以下命令:
D:
cd D:/projects
D:/Apache/Apache2/bin/htpasswd -c .htpasswd admin
Automatically using MD5 format.
New password: *****
Re-type new password: *****
Adding password for user admin
即可生成密码文件 .htpasswd。以后向该密码文件里追加用户只需这样即可。
D:/Apache/Apache2/bin/htpasswd .htpasswd user
然后编辑 httpd.conf,在最末尾加入以下内容:
<LocationMatch "/projects/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile D:/projects/trac.htpasswd
Require valid-user
</LocationMatch>
然后重新启动Apache。
- Trac+subversion拥有强大的bug管理能力
- Trac+subversion拥有强大的bug管理能力
- 如何拥有「把握本质」的强大能力?
- Ubuntu基于trac的Subversion的配置
- trac系统的日期bug
- 免费的 trac wiki 和 subversion
- trac和subversion的备份和恢复
- Freebsd+Apache+Subversion+Trac
- subversion & apache & trac
- ubuntu 下的subversion,trac,apache2安装配置
- CentOS6.3中Trac和Subversion(SVN)的结合(二)
- 恢复自我的强大能力
- Subversion分支的Bug修正
- 拥有超时能力的HTTP下载
- SEOer必须拥有良好的学习能力
- 而Apple拥有走进新生事物的能力
- 当前端也拥有 Server 的能力
- 关于subversion、trac、eclipse、mylyn
- [Perl]One-Liner
- 从windows xp读取linux ext4分区的文件
- [Perl]利用XML::DOM生成XML文档
- 几种在线可视化HTML编辑器的比较
- POJ 2080 Calendar
- Trac+subversion拥有强大的bug管理能力
- [转]悟透JavaScript
- error C2065: 'WM_SETMESSAGESTRING' : undeclared identifier
- 【转】高级PHP应用程序漏洞审核技术
- 代码之美阅读笔记之--种群计数
- error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用 msvcrtd.lib
- 网络知识 关于IPv6的寻址和路由方法介绍
- error C2018: unknown character '0xa1'
- arm-linux-gcc-4.4.1+Linux-2.6.31.6+busybox-1.15.1在TQ2440的移植