安装及测试环境ubuntu10.04 / windows 7
一、安装配置
1. 首先安装subversion
sudo apt-get install subversion
sudo apt-get install libapache2-svn
sudo apt-get install apache2-mpm-worker
2. 创建SVN仓库
我们假设svn文件仓库的位置是/home/svn,并且我们的项目的名称是myproject。为了设置文件仓库的访问权限,通常情况下,我们命名一个subversion用户组,改组时svn仓库所在目录的拥有者。
sudo addgroup subversion
sudo usermod –G subversion –a www-data
需要注销后再登陆方可成为subversion的一员。现在执行以下命令:
sudo mkdir /home/svn
cd /home/svn
sudo mkdir myproject
sudo chown –R www-data:subversion myproject
下面的命令用于创建是svn文件仓库
sudo svnadmin create /home/svn/myproject
赋予组成员对所有新加入仓库的文件拥有相应的权限
二、访问方式
subversion文件仓库可以采用多种方式进行访问,本文只涉及通过WebDAV协议(http://)和自带协议(svn://)访问两种情况:
1. 通过WebDAV协议访问(http://)
通过WebDAV协议访问SVN文件仓库需要配置Apache2 Web服务器。将如下代码加入到配置文件/etc/apache2/mods-available/dav_svn.conf中:
<Location /svn/myproject>
DAV svn
SVNPath /home/svn/myproject
AuthType Basic
AuthName "myproject subversion repository"
AuthUserFile /etc/subversion/passwd
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>
其中有两行被注释了,以保证每次都需要用户名和密码才能登陆。
重新启动apache2服务器
sudo /etc/init.d/apache2 restart
接下来需要创建/etc/subversion/passwd文件,该文件包含了用户授权的详细信息。使用下面的命令添加用户admin
sudo htpasswd –c /etc/subversion/passwd admin
接着会提示输入两次密码,输入:123456
注意:可以继续创建用户,但是不可再使用-c选项,因为该选项表示创建一个新的用户授权文件,一旦选用,原有的授权文件就被覆盖了。
2. 通过自带协议访问(svn://)
修改配置文件/home/svn/myproject/conf/svnserve.conf,注意每行开始不可有空格
sudo gedit /home/svn/myproject/conf/svnserve.conf
将如下两行取消注释
passwd-db = password
authz-db = authz
编辑/home/svn/conf/passwd文件
sudo gedit /home/svn/conf/passwd
将文件内容修改如下
[users]
hugsy = 123456
test1 = 123456
test2 = 123456
编辑/home/svn/conf/authz文件
sudo gedit /home/svn/conf/authz
将文件内容修改如下
[groups]
admin = hugsy,test1
test = test2
[/]
@admin = rw
*=r
这里设置了三个用户hugsy、test1、test2,密码都是123456,其中hugsy和test1用户属于admin组,具有读写权限;test2用户属于test组,只具有读权限。
启动SVN服务
sudo svnserve –d –r /home/svn
测试:
首先在win7端安装Subversion及TortoiseSVN客户端程序;
在将要上传的某个文件夹上点击右键TortoiseSVN->Import,在url中输入服务器地址,例如:svn://192.168.0.6,在Import message中输入注释;
点击OK后要求输入账号密码,我们使用hugsy账号登陆,点击OK 可以看到文件上传过程。
在本地新建一个文件夹命名为work,右键->TortoiseSVN->Export,在url中输入svn://192.168.0.6,点击OK,就可以将当前版本下载到本地。
此时就可以通过web方式访问SVN服务器了,在浏览器的地址栏输入http://192.168.0.6/svn就会弹出用户验证的窗口,登陆之后就可以看到当前版本仓库的目录结构了。