原文地址:http://blog.csdn.net/sinboy/archive/2009/03/18/4000524.aspx

Subversion是一个非常优秀的源代码管理控制系统,它的支持独立启动使用和结合Apache使用两种服务方式。
一、安装Subversion
1.从Subversion主页 下载最新版本的安装程序
2.如果是Windows平台,直接运行Exe的安装程序即可
3.如果是一般的Linux平台:
1)执行tar -zxvf subversion.xxx.tar.gz进行解压
2)执行cd subversion.xxx切换到解压后的目录
3)执行./configure --prefix=/opt/subversion进行配置设定,并指明安装目录
4)执行make进行编译
5)执行make install 进行安装
4.如果是Fedora Linux,可以直接执行yum install subversion进行自动安装(Fedora7以上的版本已自带
5.如果是Ubuntu Linux,可以直接执行sudo apt-get install subversion进行自动安装
二、安装Apache
1.从Apache主页 下载最新版本的安装程序
2.如果是Windows平台,直接运行安装程序
3.如果是一般的Linux平台:
1)执行tar -zxvf httpd.xxx.tar.gz进行解压
2)执行cd httpd.xxx切换到解压后的目录
3)执行./configure --prefix=/opt/httpd进行配置设定,并指明安装目录
4)执行make进行编译
5)执行make install 进行安装
4.如果是Fedora Linux,可以直接执行yum install httpd进行自动安装(Fedora7以上的版本已自带
5.如果是Ubuntu Linux,可以直接执行sudo apt-get install apache2进行自动安装
三、创建数据仓库
1.执行mkdir /var/gftech/subversion/repos创建数据仓库的目录
2.执行svnadmin create /var/gftech/subversion/repos创建数据仓库,将自动生成几个文件和目录:
/conf
/db
/hooks
...
四、独立启动方式
独立启动方式是做为一个单独的服务程序,默认情况下通过本地端口3690来对外提供服务。
启动步骤:
1.执行svnserve -d -r /var/gftech/subversion/repos以Daemon方式运行,默认情况下匿名访问
2.在Fedora中,可以用chkconfig把Subversion做一个服务程序,随系统自动启动:
1)以root帐号登录
2)执行cd /etc/rc.d/init.d切换到服务程序所在目录
3)执行vi svnd进行文件编辑
4)添加下面的内容到svnd文件当中:
5)保存退出
6)执行chmod a+x svnd 使之可执行
7)执行chkconfig --add svnd添加该服务到系统当中
8)执行chkconfig --list svnd查看该服务
9)执行service svnd start可以启动该服务
10)执行service svnd stop可以停止该服务
在进行源代码管理时,为了安全起见,需要对用户的权限进行控制,主要通过三个配置文件来实 现,svnservice.conf、passwd、authz,第一个文件指明是否需要进行访问控制以及第二、三个文件的位置,第二个文件存放用户帐号 信息,第三个文件存放用户的访问权限,具体配置如下:
1.打开svnserve.conf文件,把auth-access=write前面的#号去掉,使受权用户可以进行写操作
2.把password-db=passwd前面的#号去掉,表明密码文件为当前目录下的passwd文件
3.把auth-db=authz前面的#号去掉,表明用户访问权限文件为当前目录下的authz文件
4.打开passwd文件,在末行添加需要的帐号,比如:test=123456
5.打开authz文件,在[/]一行下面添加test=rw,表明数据仓库的根目录下的所有目录,test都可进行读写操作
6.再添加一行*=r,表明其他帐号可以进行只读操作
7.在该文件中还可以为用户分组,添加到[groups]下面,比如:admin=sinboy,others=u1,u2
8.还可以对根目录下的子目录进行具体的权限控制,只需要添加相应目录,比如:
[/web]
u1=rw
*=
表明web子目录只允许u1帐号进行读写操作,禁止其他帐号访问
它的缺点是:
1.对外提供服务时,有可能受到防火墙的阻隔,造成服务无法访问
2.并且它的密码文件是明文显示,没有进行MD5加密,存在安全隐患
3.只能启动一个数据仓库,如果想要创建多个数据仓库,必须启动多个svnserve服务进程
五、结合Apache方式
结合Apache使用的方式,克服了svnserve方式的缺点,用户可以直接通过浏览器浏览源代码,还可以对浏览器访问进行SSL加密控制,更好的提高安全性
1.Apache本身不支持SVN,需要先安装mod_dav_svn模块
2.在Fedora下,执行yum install mod_dav_svn进行自动安装
3.确保/etc/httpd/moudles目录下有mod_dav_svn.so和mod_authz_svn.so
4.打开/etc/httpd/conf/httpd.conf文件,在LoadModule dav_module modules/mod_dav.so
一行下面添加下面两行内容:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

5.再添加如下内容:

DAV svn
SVNPath /var/gftech/subversion/repos

AuthzSVNAccessFile /var/gftech/subversion/repos/conf/access.auth
Satisfy Any
Require valid-user
AuthType Basic
AuthName &quot
;Subversion repositories"


AuthUserFile  /var/gftech/subversion/repos/conf/users.auth
Require valid-user
6.切换到/var/gftech/subversion/repos/conf目录下
7.执行htpasswd -cb users.auth test 123456创建帐号文件
8.再次添加用户,去掉参数c即可:htpasswd -b users.auth test2 123456
9.执行service httpd restart启动Apache
10.在浏览器中输入http://host/svn打开SVN仓库,输入用户名密码进行访问
六、SVN客户端
推荐使用TortoiseSVN
七、其他文章推荐