①安装svn服务端
[root@vm-31 ~]# yum install svn
②创建服务端仓库,并设置权限
[root@vm-31 ~]# mkdir -p /var/svn/test
[root@vm-31 ~]# svnadmin create /var/svn/test
[root@vm-31 test]# vi conf/passwd
vi conf/svnserve.conf
③开放svn默认端口3690
[root@vm-31 test]# firewall-cmd --zone=public --add-port=3690/tcp --permanent
[root@vm-31 test]# firewall-cmd --reload
查看所有的开放到端口
[root@vm-31 test]# firewall-cmd --zone=public --list-ports
④开启svn服务
[root@vm-31 test]# svnserve -d -r /var/svn/
⑤配置自动更新到web目录
新建一个www用户并设置密码
[root@vm-31 htdocs]# adduser www
[root@vm-31 htdocs]# passwd www
修改web目录所有者为www用户,并检出svn仓库到该目录
chown -R www.www /opt/lampp/htdocs/test
[root@vm-31 test]# svn co svn://192.168.0.31/test ./
配置钩子
[root@vm-31 test]# cd /var/svn/test/hooks/
[root@vm-31 hooks]# vi post-commit
[root@vm-31 hooks]# cp post-commit.tmpl post-commit
#!/bin/sh
SVN=/usr/bin/svn
WEB=/opt/lampp/htdocs/test
LOG_PATH=/tmp/svn_hook.log
echo "------------Start Commit -----------" >> $LOG_PATH
echo "Time:"`date '+%Y-%m-%d %T'`>>$LOG_PATH
export LANG='zh_CN.UTF-8' #防止乱码
for DIR in `svnlook dirs-changed /var/svn/test/`
do $SVN update $WEB/$DIR
done
#chown -R www.www /opt/lampp/htdocs/test
添加可执行权限
[root@vm-31 hooks]# chmod +x post-commit
保存提交,然后windows客户端检出,新建文件提交,查看web目录
发现提交后项目在web目录自动更新了123.text