CentOS6.8 搭建SVN并用钩子自动实现同步到web目录

一 安装

yum install subversion

二 检查是否安装成功

svn --version

三 创建仓库目录

mkdir –p /home/svnroot/test

四 创建项目

svnadmin create /home/svnroot/test

五 检查是否创建成功

cd /home/svnroot/test
ls    // 查看创建成功后生成的文件

六 进入conf目录配置该版本库的文件

authz 是权限控制文件

passwd 是帐号密码文件

svnserve.conf 是SVN服务配置文件

6.1 配置passwd,语法:用户名=密码

[users]  
test1 = 123456
test2 = 123456

6.2 配置authz用户权限文件

[/]
test1 = rw
test2 = r

6.3 配置svnserve.conf文件,取消以下几个注释即可

anon-access = read  #匿名用户可读  
auth-access = write  #授权用户可写  
password-db = passwd  #使用哪个文件作为账号文件  
authz-db = authz  #使用哪个文件作为权限文件  
realm = /home/svnroot/test  #认证空间名,版本库所在目录

七 启动 SVN服务

svnserve -d -r /home/svnroot

注意:不是svnserve -d -r /home/svnroot/test

八 在本机安装TortoiseSVN

输入svn://你的ip地址/test

如果弹出输入账号密码的对话框,表示上述设置正确。

九 实现自动同步

假设web目录是 /home/www/test

在/home/svnroot/test/hooks下创建post-commit文件,文件设置可执行权限

cp post-commit.tmpl post-commit
chmod 755 post-commit

打开post-commit文件,加入以下内容

export LANG=zh_CN.UTF-8
svn co svn://你的ip地址/test /home/www/test
LOG_PATH=/tmp/svn_test.log
WEB=/home/www/test
REPOS="$1"
REV="$2"
svn update --username test1 --password 123456 $WEB --no-auth-cache >> $LOG_PATH

最后,回到shell

svn co svn://你的ip/test /home/www/test

输入账号密码,即可实现自动同步。