Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。
基于Apache Http Server的Subversion 的好处:
A.能使用WebDAV协议。
B.能使用浏览器作为客户端工具浏览源码仓库。
C.可以很容易的支持到SSPI(Windows域认证)和LDAP,这些都是Apache本身就支持的。
D.能得到比较完善的Apache安全认证系统,比如SSL加密连接。
我采用的是 Subversion Standalone Server 方式。
以前我使用的基于Apache Http Server的过程中,遇到一些问题。提交的代码,会导致锁定,这很让人头疼。所以,今天我要换一种方式。
OK!进入安装配置。
一、安装subversion
执行如下 shell 命令进行安装:
yum -y install subversion
如果,你不确定自己系统中是否已经安装过svn,执行如下 shell 命令检测:
rpm -qa | grep subversion
如果输出类似如下结果,则说明已经安装:
subversion-1.6.11-7.el6.x86_64
安装之后,使用如下命令可以查看版本信息:
svn --version
二、建立代码仓库
1、常规情况下,我们一个仓库里面会有多少个项目。所以,第一步得创建所有项目的仓库中心,如下命令:
mkdir /opt/svn/
2、现在假定我们有一个项目叫 svntest ,现在我们为这个项目在仓库中心中分配一个仓库。如下命令:
svnadmin create /opt/svn/svntest/
三、修改配置文件
1、进入 svntest 项目仓库配置目录中,如下命令:
cd /opt/svn/svntest/conf/
2、查看配置目录中有哪些文件,如下命令:
ll
结果如下:
-rw-r--r--1 root root 110510月1111:55 authz -rw-r--r--1 root root 32610月1111:55 passwd -rw-r--r--1 root root 227110月1111:54 svnserve.conf
3、执行如下命令修改svnserve.conf:
vi svnserve.conf
找到以下的内容,并在行首注释符号#删掉。
[general] anon-access = none auth-access = write password-db = passwd authz-db = authz
4、为 svntest 项目增加svn用户,并且赋予权限值:
vi authz
在文件中添加如下代码:
[svntest:/] svn001 = rw
代码的意思是:为 svntest 项目添加一个svn001的用户,并且,这个用户对于 svntest 项目拥有读写权限。
关于方框号里面的写法有以下几种:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svntest,[/]就是表示对全部版本库设置权限。
[svntest:/] 表示对版本库svntest设置权限
[svntest:/abc] 表示对版本库svntest中的abc项目设置权限
[svntest:/abc/aaa] 表示对版本库svntest中的abc项目的aaa目录设置权限
5、给用户分配密码,执行如下命令:
vi passwd
输入如下内容:
svn001 =123456
四、启动svn服务和测试
1、启动svn服务,并指定 svn 的根目录:
svnserve -d -r /opt/svn/
2、查看svn服务是否正常启动,执行如下命令:
netstat -tunlp | grep svn
会输出如下结果:
tcp 000.0.0.0:36900.0.0.0:* LISTEN 1737/svnserve
顺便提一下,svn的默认端口是3690。
3、在windows系统上测试是否成功:
1)首先保证你的系统中已经安装了 subversion 客户端程序。如果没有安装马上下载安装,并重启windows系统。
2)在windows任意的目录中,创建一个文件夹,文件夹的名字任意,最好是英文名。如我的:svn_test。
3)右键点击该文件夹,选择”Checkout…”,填写如下信息,如图:
4)点击“确定”按钮之后,会弹出一个对话框,让你输入账号密码,我们的账号是:svn001,密码是:123456.填写完之后,可以公告保存账号密码的选项。再点击“确定”就OK了。
5)开启自启动SVN服务器。现在我们已经配置好了svn服务器。但是,我们是通过手工通过命令启动的。如果,想每次centos 系统开启就启动这个服务的话,有以下方式可以实现。打开/etc/rc.local文件,shell命令如下:
vi /etc/rc.local
在文件末尾添加如下代码:
svnserve -d -r /opt/svn/
这样开机的时候就会自动启动svn服务器了。