linux下通过yum安装svn及配置

1.环境
centos6.4

2.安装svn
yum -y install subversion

3.配置

建立版本库目录
mkdir /usr/svn

svnserve -d -r /usr/svn  启动svn服务

4.建立版本库

创建一个新的Subversion项目
svnadmin create /usr/svn/project

配置允许用户user访问  将注释去掉
cd /usr/svn/project/conf

vi svnserve.conf
anon-access=read
auth-access=write
password-db=passwd

注:修改的文件前面不能有空格,否则启动svn server出错

vi passwd
[users]
#<用户1> = <密码1>
#<用户2> = <密码2>
user=123456

vi authz  添加用户组

此时版本库已经建好了

######################################

客户端使用svn

svn co svn://ip/project

6.实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中

1)设置WEB服务器根目录为/var/www/webroot

2)checkout一份SVN

svn co svn://localhost/njlrxx /var/www/webroot/njlrxx

修改权限为WEB用户

chown -R apache:apache /var/www/webroot/njlrxx

3)建立同步脚本

cd /var/www/svndata/njlrxx/hooks/

cp post-commit.tmpl post-commit

编辑post-commit,在文件最后添加以下内容

复制代码
复制代码
REPOS="$1"
REV="$2"

BASEPATH=/var/www/webroot/njlrxx
WEBPATH="$BASEPATH/"
export LANG=zh_CN.UTF-8
svn update $WEBPATH --username jiqing --password 123456 --no-auth-cache
复制代码
复制代码

增加脚本执行权限

chmod +x post-commit

最后操作是关闭服务然再打开服务:

svn服务的关闭:

killall svnserve

svn开启:

svnserve -d -r /var/www/svndata

===============================================================

SVN自动同步程序执行流程:
1、用户提交文件到SVN服务器,提交操作成功后触发post-commit脚本
2、在post-commit版本文件中使用php_script.php执行PHP脚本
3、在PHP脚本中通过exec系统调用更新服务器上的版本库工作副本
4、根据更新操作结果日志,对另一个SVN版本库进行对应的操作处理

svn有两种存储方式:BDB和FSFS,目前用的最多的是FSFS方式,这种方式的话,一般是存储在db
evs文件夹下,里面有一堆以版本号命名的文件,如:0、1、2、3、4......,那个就是了。

svn先把0版本的状态压缩成1个文件,然后每次版本更新时就针对变动的部分做一个压缩文件,每次都是增加一个增量包,最后在服务器上能看到文件名为从0开始到最终版本的一系列文件
原文地址:https://www.cnblogs.com/georgelu/p/6423002.html