新建一个svn项目,然后用trac来管理svn的流程:

1、创建svn项目:
svnadmin create /svn/gc/product001 (创建SVN版本库,版本库名称为:pro)
chown -R apache:apache /svn/gc/product001 (用户和所有组必须为apache,否则trac无法写版本库里的文件)

2、创建trac项目:
trac-admin /trac/gc/product001 initenv (创建trac项目)
各项如下
Project Name [My Project]> product001 (项目名称:pro,这里最好和SVN版本库名一样,方便管理和记忆)
Database connection string [sqlite:db/trac.db]> (这里直接回车,默认就是sqlite库)

vim /trac/gc/product001/conf/trac.ini (修改trac配置文件)
找到
max_size = 10000000 (支持最大文件10M)
repository_dir = /svn/gc/product001 (这里要指定svn版本库的路径,必须指定!!!)

找到[header_logo]区域
src = site/logo.gif (此参数设置LOGO)
保存退出 (:wq)
chown -R apache:apache /trac/gc/product001 (用户和所有组必须为apache,否则trac无法写项目里的文件)

3、修改httpd配置,增加虚拟主机,并配置svn和trac的http密码
Listen 8080 (增加一个监听的端口,注意:不是修改,是增加

在配置文件末尾增加下边内容:

<VirtualHost *:8080>
DocumentRoot /var/www/html/
ServerName 192.168.0.252:8080
<Location /svn>
DAV svn
SVNParentPath /svn/gc (设置项目的根目录)
SVNListParentPath on

AuthType Basic
AuthName "SVN Repository"
AuthUserFile /etc/svn/account (设置认证文件,用的是htpasswd生成的密码)
Require valid-user
</Location>

<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /trac/gc
PythonOption TracUriRoot /trac

AuthType Basic
AuthName "Trac Project"
AuthUserFile /etc/svn/account (trac的认证和svn用的相同认证文件)
Require valid-user
</Location>
</VirtualHost>

4、用http协议连接时,用http的密码机制限制限制用户权限:

增加svn和trac的http认证的用户名和密码
htpasswd /etc/svn/account lyd 增加user账户

5、用svn协议连接时,用svn自带的机制来管理用户权限:

[root@gc252 ~]# cd /svn/gc/product001/conf
[root@gc252 conf]# ll
总计 12
-rw-r--r-- 1 apache apache 960 2011-08-06 authz
-rw-r--r-- 1 apache apache 301 08-06 10:03 passwd
-rw-r--r-- 1 apache apache 2318 08-06 10:03 svnserve.conf
用上述的三个配置文件来管理svn协议登录的账户和密码

先设置svnserver.conf
vim svnserver.conf

anon-access = none (等号两边一定要有空格)
password-db = passwd
authz-db = authz

然后配置authz
然除了user,admin这两个用户有读写的权限,其他账户没有权限
[groups]
administrator = admin,user

[/]
@administrator = rw
*=

为账户设置密码:
vim passwd

[users]
admin = 123456
user = 123456