公司生产环境中用到了SVN,么办法,用了咱就得了解,就得学习,就得掌握呀。
于是网上搜了下,有很多文档,我也就照葫芦画瓢也写了一份。仅供大家参考。

一、SVN介绍
1、svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。
2、运行方式:svn服务器有2种运行方式,独立服务器和借助apache。2种方式各有利弊,用户自行选择。
3、存储数据:svn存储版本数据也有2种方式,BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
4、安全领域:对多种应用进行全面的安全认证、支持多种认证及PKI、功能强大并对用户透明的通讯加密、面向用户的集中安全策略管理、统一跨接Internet、Intranet、Extranet的通讯。
5、体系结构:SVN安全远程客户端软件包、SVN证书管理模块、SVN硬件加密卡、SVN智能带宽管理模块、SVN冗余管理模块、自动地址转换模块、SVN安全服务器软件包、SVN安全客户端软件包。

二、SVN安装
tar -jxvf subversion-1.6.5.tar.gz

cd /usr/src/subversion-1.6.5/

./configure --prefix=/usr/local/svn     

make && make install

安装过程中如果提示缺少某个软件包,直接用yum安装上就好。

apache安装

tar -zxvf httpd-2.2.17.tar.gz

./configure --prefix=/usr/local/apache2

--enable-dav(加次参数使apache加载svn模块) 

--enable-so 

make&&make install

apache安装完成后,测试下。

浏览器输入http://本机IP

接下来就是svn和apache的结合了,

首先说一下svn的目录结构 

公司为技术部和安全部各新建的了一个库,位置如下:

技术:/opt/svnroot/yunwei

安全:/opt/svnroot/anquan                       

在每个库中有很多项目仓库,用户的数据都是直接放到项目仓库的。

比如我的/opt/svnroot/yunwei 下面有一个CAS的项目仓库,则怎样才能让这个CAS成为项目仓库呢?

首先mkdir CAS (新建一个空的目录)

svnadmin create /opt/svnroot/yunwei/CAS

此时这个CAS就是一个项目仓库,里面也会多了很多文件。

最后就是访问apache怎么会出现svn库呢?那就是要改http.conf配置文件啦

添加访问jishu这个库的配置:

<Location /jishu/>  (svn库的名字)
        DAV svn
        SVNListParentPath on
        SVNParentPath /opt/svnroot/jishu/    (svn库的路径)
        AuthType Basic
        AuthName "welcome to SVN"
        AuthUserFile /opt/svnroot/passwd     (apache验证文件位置)
        AuthzSVNAccessFile /opt/svnroot/authz_jishu  (对于svn库的权限配置)
        Satisfy all
        Require valid-user
</Location>

其他库的格式同上面的是一样的。

这里又涉及到了两个新的问题,AuthUserFile 和AuthzSVNAccessFile 这两个文件代表什么?

先解释第一个,用户通过apache访问svn的时候需要验证,而这里指定的文件位置就是apache的认证文件,用户是通过htpasswd来添加的。

第二个文件:svn库也就是jishu 这是一个目录,既然是目录就涉及到访问权限,首先这个目录本身的权限 所有者和所属组一定要改成apache这个用户,然后访问不到,在就是哪些用户可以删除jishu这个库里的东西,哪些用户不可以呢,在authz——jishu这个文件里都是明确指定了的。

配置文件改完之后,重启下http服务,然后通过浏览器访问http://本机IP/jishu/
注意:访问的时候左斜杠一定不能少,否则访问不到。

最后给大家上几张图片,都是有关于svn配置的,希望对大家有帮助,如果有什么不对的地方也烦请各位随时提出,先行谢过。