1.环境
centos6.4
2.安装svn
yum -y install subversion
3.配置
建立版本库目录
mkdir /var/www/svndata
svnserve -d -r /var/www/svndata
4.建立版本库
创建一个新的Subversion项目
svnadmin create /var/www/svndata/repos
配置允许用户jiqing访问
cd /var/www/svndata/repos/conf
vi svnserve.conf
anon-access=none
auth-access=write
password-db=passwd
注:修改的文件前面不能有空格,否则启动svn server出错
vi passwd
[users]
#<用户1> = <密码1>
#<用户2> = <密码2>
jiqing=123456
5.客户端连接
svn co svn://ip/repos
svn://192.168.2.220/repos/source
密码:123456
===============================================================
6.实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中
1)设置WEB服务器根目录为/var/www/webroot
2)checkout一份SVN
svn co svn://localhost/repos /var/www/webroot/repos
修改权限为WEB用户
chown -R apache:apache /var/www/webroot/repos
3)建立同步脚本
cd /var/www/svndata/repos/hooks/
cp post-commit.tmpl post-commit
编辑post-commit,在文件最后添加以下内容
复制代码
REPOS="$1"
REV="$2"
BASEPATH=/var/www/webroot/repos
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 服务
[root@DB2 conf]# svnserve -d -r /var/www/svndata
测试安装是否成功
[root@R420 bin]# svnserve --version
svnserve,版本 1.6.11 (r934486)
编译于 Mar 6 2014,10:49:10
版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。
下列版本库后端(FS) 模块可用:
* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。
Cyrus SASL 认证可用。
===============================================================
SVN自动同步程序执行流程:
1、用户提交文件到SVN服务器,提交操作成功后触发post-commit脚本
2、在post-commit版本文件中使用php_script.php执行PHP脚本
3、在PHP脚本中通过exec系统调用更新服务器上的版本库工作副本
4、根据更新操作结果日志,对另一个SVN版本库进行对应的操作处理