公司生产环境中用到了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配置的,希望对大家有帮助,如果有什么不对的地方也烦请各位随时提出,先行谢过。
本文转自 linuxsong 51CTO博客,原文链接:http://blog.51cto.com/song49/791788,如需转载请自行联系原作者