安装与使用 Trac 来管理项目
1 概要
以 Windows 平台为例,讲述一下有关 Trac 的基本配置与使用,同时分享一下有关 Trac 的项目管理经验。
2 安装 Trac 前的准备工作
2.1 准备工作
- 安装 Python 2.7;
- 安装 setuptools-0.6c11.win32-py2.7
- 安装 Genshi,可以用下面的命令用 Setupfile 来安装。
easy_install Genshi
安装时,注意版本的问题。如setuptools-0.6c11.win32-py2.7就是用于windows 32位,python2.7的。
3 安装 Trac
用 easy_install 来安装 Trac,详细的说明可以看官方文档,或者在这一步,直接下载 Windows 的 Trac 安装文件来进行安装,直接下载来安装很方便,不过注意版本。
4 配置Trac环境
完成上述的安装后,就可以创建一个 TracEnvironment,它是 Trac 存储信息的地方,如 wiki pages, tickets, reports, settings 等。
4.1 通过 trac-admin 创建一个 Trac Environment
我的做法是先在d盘新建一个trac目录,然后执行:
$ trac-admin d:/trac/mytest initenv
配置环境之前,注意此外trac-admin能用是因为加到了PATH环境变量里了。python里的script文件里有trac-admin.exe文件。将script文件目录加到PATH变量里。
然后根据提示输入项目的名字(myproject),数据库连接字符串(默认),你的源代码资源库路径,根据相应的提示,输入相关信息即可。
如果提示如下错误:
C:\Python27\Scripts>tracd -p 8080 e:/trac/MyTest
Traceback (most recent call last):
File "C:\Python27\Scripts\tracd-script.py", line 5, in <module>
from pkg_resources import load_entry_point
File "C:\Python27\lib\site-packages\pkg_resources.py", line 2603, in <module>
working_set.require(__requires__)
File "C:\Python27\lib\site-packages\pkg_resources.py", line 666, in require
needed = self.resolve(parse_requirements(requirements))
File "C:\Python27\lib\site-packages\pkg_resources.py", line 565, in resolve
raise DistributionNotFound(req) # XXX put more info here
pkg_resources.DistributionNotFound: Genshi>=0.6
则表明没有安装 Genshi。
4.2 运行成功后,即可以开启 Trac 服务
可以通过 tracd 命令来开启 Trac 服务,命令如下:
tracd --port 8000 E:\Trac\MyTest
启动成功后,即可通过网址:
http://localhost:8000/MyTest
来访问相关的 Trac 服务,这时即访问 MyTest 这个工程。
其它机器也可以通过访问这台机器的 IP 加端口来访问这个服务。最基本、最简单的使用,可以不用 Apache 来搭建 Web 服务器。
4.3 添加用户(在用户管理和身份验证里有详细说明)
刚安装好的 Trac,并没有提供一个用户注册面板,也没有设置管理员权限,这个时候,我们需要自己来添加用户。
这一点经常让我这种习惯了用其它管理系统的人摸不着头脑,系统怎么没有让我设置相关的管理员用户名和密码呢?
最简单的方法是这样的:
直接用 Generating Passwords Without Apache 里提到的方法:
$ python trac-digest.py -u username -p password >> c:\digest.txt
$ tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name
直接就可以把 username 添加到某个工程里,并可以登陆了。
4.4 Trac 管理员密码的设置
单纯把某个用户添加到了工程里,并不能让这个用户有管理工程的权限,所以,需要单独分配权限给这个用户:
比如说,我要分本给 admn 这个用户管理员权限,可以用下面的语句:
$ trac-admin /path/to/projenv permission add admin TRAC_ADMIN
现在重启一下 Trac 服务器,你再用 admin 登陆,就可以看到右边有一个 Admin 的控制面板了。
最好的办法,你给不同的 projects,添加不同的用户名,为不同的 project,开启不同的端口,这样就不会相互影响了。
4.5 有了管理员密码,就可以进行一些基础配置
- 不让匿名用户看到任何内容
出于对工作及公司的安全性考虑,我们完全有理由不让匿名用户看到 Trac 里的任何内容。
只需要在管理面板 Admin ==> General ==> Permissions 里,把 Subject 为 anonymous 的相应权限全部去掉即可。
CANNOT INCLUDE FILE ../addon/ads-bar.org
5 更加高级的功能
5.1 用 Apache 服务器来提供网页版服务
用第4种方法开启的服务,只能在本机使用,如果需要让一个团队都能访问的话,需要开启一个 Apache 服务器。
http://trac.edgewall.org/wiki/TracInstall#RunningTraconaWebServer
5.2 提供网页注册用户名等功能
- 先安装一个 Trac Account Manager Plugin 工具
可以直接用 easy_install 来安装
- 重启服务器,在 Plugins 里开启本功能即可。
注意一定要像图中一样,开启那个右上角的 1 字符。
realm 的用处是区分这个用户名属于哪里的,现在这样,很容易地区分出来。和之前 tracd 命令启动时带的参数一样。
还可以针对不同的工程,设定不同的密码文件,这样可以有效地隔离不相干人群。
使用这个还有一个需要注意的,就是,公司内部使用的话,可以把烦人的 Email Verification 关掉。
5.3 提供邮件发送 ticket 提醒等功能
用 Gmail 的话,可查看这篇日志,有关如何设置用 Gmail 来发提醒邮件的功能。
5.4 提供用户名补全等功能
默认情况下,Trac 需要你在分 Ticket 时,自己填空。在项目人员过多的情况下,这显示是不现实的办法。
还好,可以使用 AutocompleteUsersPlugin 这个来自动补全与提示,使用后感觉不错。
5.5 导出为 Excel 或 Word
可以导出数据为 CSV 或 Text 格式:
Trac also exports reports and custom queries to CSV, which will open in Excel directly. Click the "Comma-delimited Text" link near the bottom.
5.6 Trac 的备份
对于 Trac 这种团队用的东西,备份是非常重要的。成一数据丢了,项目也就完蛋了。
Trac 支持热备份,可以很方便地用下面的命令来对某个工程进行备份:
$ trac-admin /path/to/projenv hotcopy /path/to/backupdir
注意,这个只能是对工程一个一个的进行备份,其实就是把 Trac 工程的所有文件都打了一个包。
所以,为了备份简单,应该要把密码文件也放到 projenv 的目录里,这样备份起来,会一起把用户名和密码文件打包的。
只要备份完全,你完全可以在别外一台机器上,在另一台机器上配置好 Python 环境,再安装好 Trac ,再把这些备份的文件,扔到一个运行目录里,再用同样的命令就可以直接把该 project 跑起来了。
非常便利!
5.7 Trac 换主题
默认的 Trac 主题并不算十分好看,这里有大把主题可以换:
5.8 Trac 上搭建一个博客系统
可以通过这个博客系统及时通知团队有什么新的更新内容之类的。
5.9 Trac 作为服务程序开机启动
对于 Linux 系统来说,需要添加一个开机启动程序,还是很简单的。可以使用 /etc/init.d 目录下的脚本来完成这个任务。
详细的脚本可以参考这个文章:Start Trac on Startup – Init.d Script for tracd
注意修改里面的 IP、端口以及目录参数。我这里好像把IP设置成 127.0.0.1 好像并不能让别人访问,所以还是设成你电脑的正式 IP 比较好。或是有一个技巧,在这里直接把 IP 设为 0.0.0.0。
有了这个脚本,你只需要用如下命令重启 tracd 服务器即可:
$ sudo /etc/init.d/trac start
$ sudo /etc/init.d/trac stop
如果是在 Windows 下,则有三种选择来让它开机启动。我喜欢用 cygwin 的 cygrunsrv.exe 来安装该服务。例如,如果我 Windows 本地的 Trac 启动命令是:
tracd --port 8999 --auth=All-in-Trac,E:\water\Basket\Trac\All-in-Trac\conf\password.digest,trac E:\water\Basket\Trac\All-in-Trac
则在 Cygwin 里可用如下命令来把 tracd 注册成 Windows 系统服务:
cygrunsrv --install tracd --path /cygdrive/c/Python27/Scripts/tracd.exe --args '--port 8999 --auth=All-in-Trac,E:\water\Basket\Trac\All-in-Trac\conf\password.digest,trac E:\water\Basket\Trac\All-in-Trac'
6 Trac 的缺陷
针对 Trac 0.12 来说的缺陷,
- 没有办法来定制 component 和 sub-component 这样的层级关系;
- 各种功能都齐全,可是各种功能都不强大,样样都不精;
- 没有办法控制用户可以看到哪个 component 这样的权限,从而不方便对大型项目进行管理;
- 好像没有语言包这种机制,不太好弄。
- 没有办法用邮箱作为用户名。
- 流程定制能力太差,好像没办法定制 driver 和 rider 之类的东西。
- ower 这种东西,没有办法用下拉列表的方式来表示。
[fn:author] 台湾著名计算机技术作家。
安装与使用 Trac 来管理项目的更多相关文章
- Linux(Centos)之安装tomcat并且部署Java Web项目
1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图: b ...
- 使用NuGet管理项目类库引用
NuGet 是微软开发平台(包括.NET平台)的一个包管理器,这里只介绍和.NET相关的NuGet Visual Studio扩展客户端, 在VS2010 ,VS2012 ,VS2013中默认集成了N ...
- 九步轻松实现SVN创建管理项目
本节向大家描述一下在Windows上使用Subversion中如何使用SVN创建管理项目,在这里和大家分享一下,欢迎大家一起来学习在 使用SVN创建管理项目的方法.首先看一下SVN介绍. Subver ...
- 在VS下使用 GitFlow管理项目开发
在VS下使用 GitFlow管理项目开发 1.右键将你的解决方案添加到源代码管理,如果你的VS没有安装git,会提示安装,安装完成之后,在团队资源管理可以看到如下界面 (图一) 2.安装gitflow ...
- 怎么使用git来管理项目版本?
怎么使用git来管理项目版本和存放代码? 作者:rongfangliu 转载请注明出处:http://www.cnblogs.com/rongfangliu/p/howuseGit.html 工具: ...
- Linux(Centos)之安装tomcat并且部署Java Web项目(转)
1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图: b ...
- 构建微服务开发环境7————使用Github管理项目代码的版本
[内容指引] 1.注册GitHub帐号: 2.下载Github Desktop客户端: 3.macOS安装Github Desktop客户端: 4.windows安装Github Desktop客户端 ...
- mvn管理项目jar包
Maven是一个采用纯Java编写的开 源项目管理工具.Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xm ...
- vue,vuex的后台管理项目架子structure-admin,后端服务nodejs
之前写过一篇vue初始化项目,构建vuex的后台管理项目架子,这个structure-admin-web所拥有的功能 接下来,针对structure-admin-web的不足,进行了补充,开发了具有登 ...
随机推荐
- (转)libhybris及EGL Platform-在Glibc生态中重用Android的驱动
原文地址:http://blog.csdn.net/jinzhuojun/article/details/41412587 libhybris主要作用是为了解决libc库的兼容问题,目的是为了在基于G ...
- 关于sdl_ttf使用字体库加载失败的问题
今天同事拿着前期阶段开发的视频绘图库给另外一个同事的电脑上测试,结果发现老是出现打开字体库失败,但从打印的日志信息看,路径下确实存在字体库啊,这是什么原因? 于是没办法,搬到自己本级上再测试下,从他机 ...
- Java VM
何时需要理解Java 虚拟机机制 一.排错 二.性能优化 字节码文件的执行流程.机制. 涉及到文件的加载机制(类加载器).执行机制(执行引擎).运行时优化(JIT运行时编译).以及内存分配与垃圾回收. ...
- df命令/du命令/磁盘分区
4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区 df命令 磁盘管理df 大小单位是KB,挂载点是linux上的目录 df -h 根据磁盘大小适当调整单位;单位有:Byte ,1KB,1M ...
- window.frames[]在Firefox下无法兼容的解决方式
html代码段: <iframe id="fr" src="ProjectTree.aspx?IsFree=true&f=yes&IsCheckPr ...
- 基于maven使用IDEA创建多模块项目
原文地址:http://blog.csdn.net/williamhappy/article/details/54376855 鉴于最近学习一个分布式项目的开发,讲一下关于使用IntelliJ IDE ...
- ADCD 1.9 ZOS 配置 CTCI-W32 TCPIP 网络
试验步骤:两步走,第一步修改Hercules的配置文件 在hercules 配置文件末尾加上 0E20-0E21 CTCI -n 0A-00-27-00-00-00 192.168.5 ...
- django 配置中STATICFILES_DIRS 和STATIC_ROOT不能同时出现
系统环境: win7 django版本查看: 启动django项目的时候,一直找不到静态资源,很奇怪放在linux服务器上的时候好好的,拿下来随便修改了配置就说url找不到了. 用wingIDE没有任 ...
- Mac上csv导入mysql提示错误[Error Code] 1290 - The MySQL server is running with the --secure-file-priv option解决办法
1.进入mysql查看secure_file_prive的值 $mysql -u root -p mysql>SHOW VARIABLES LIKE "secure_file_priv ...
- [转]gluProject 和 gluUnproject 的详解
gluProject 和 gluUnproject 的详解 简介: 三维空间中,经常需要将 3D 空间中的点转换到 2D(屏幕坐标),或者将 2D 点转换到 3D 空间中.当你使用 OpenGL 的时 ...