svn是一款非常不错的开源的版本控制软件,现在就其搭建过程做如下记载,主要是借助apache进行工作的。

一.环境准备

二.svn配置

三.apache配置

四.svn常见示例


一.环境准备

1.系统CentOS 6,所需软件

subversion-1.6.11-9.el6_4.i686

mod_dav_svn-1.6.11-9.el6_4.i686

httpd-2.2.15-26.el6.centos.i686

注:这些软件我都是yum安装的,如果大家想获取最新软件包,可以去相应官网去下载。


二.svn配置

1.安装svn相关软件包

[root@master ~]# yum install  subversion


2.创建svn用户

[root@master ~]# useradd svn


3.创建版本库

[root@master ~]# mkdir -p /opt/svn/
[root@master ~]# su svn                             切换用户
[svn@master ~]$ svnadmin create /opt/svn/product/   创建版本库
[svn@master ~]$ cd /opt/svn/product/
[svn@master ~]$ ls
conf  db  format  hooks  locks  README.txt
[svn@master ~]$ svnadmin create /opt/svn/longbinary  创建版本库
[svn@master ~]$ ls /opt/svn/longbinary/
conf  db  format  hooks  locks  README.txt


三.apache配置

1.安装apache及svn模块

[root@master ~]# yum install httpd mod_dav_svn
[root@master ~]# ls /etc/httpd/modules/|grep svn   验证svn模块
mod_authz_svn.so
mod_dav_svn.so


2.apache相关配置

   2.1 /etc/httpd/conf.d/subversion.conf配置如下

加载模块
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /svn>
   DAV svn                                     在apache启用svn模块
   SVNParentPath /opt/svn/                     在些路径下寻找版本库
      AuthzSVNAccessFile /opt/svn/authz.conf   访问控制文件
      AuthType Basic                           认证类型为基本认证
      AuthName "welcome svn"                   欢迎语
      AuthUserFile /opt/svn/passwd             密码控制文件
      Require valid-user                       用户密码正确可访问版本库     
</Location>


   2.2 创建访问控制用户

[root@master ~]# htpasswd -c /opt/svn/passwd admin
New password:
Re-type new password:
Adding password for user admin


  2.3 认证authz.conf配置如下

[product:/]
admin = rw
[longbinary:/]
admin = rw
[YunYingSvn:/]
admin = rw


3.其他

   3.1 确保apache用户对版本库有读写权限

[root@master svn]# chown -R apache:apache product/
[root@master svn]# chown -R apache:apache longbinary/
[root@master svn]# ls -al | grep '^d'
drwxr-xr-x.  7 apache apache 4096 6月  28 23:32 longbinary
drwxr-xr-x.  6 apache apache 4096 6月  28 18:17 product


   3.2 启动svn httpd

[root@master ~]# /etc/init.d/svnserve start
正在启动 svnserve:                                        [确定]
[root@master ~]# /etc/init.d/httpd start
正在启动 httpd:httpd:                                     [确定]


4.验证

基于apache服务的svn服务器之构建_linux


四.svn常见示

1.导入目录

[root@Nodes01 mail]# svn import test http://192.168.4.44/svn/product --message "resivion 1"


2.导出目录

[root@Nodes01 ~]# svn checkout http://192.168.4.44/svn/product/


3.查看版本内容

[root@Nodes01 mail]# svn list http://192.168.4.44/svn/product