①安装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

本文详细介绍了如何在Linux环境下安装配置Subversion(SVN)服务端,包括创建仓库、设置权限、开放端口、启动服务及配置自动更新到web目录的过程。通过设置钩子实现代码提交后自动更新至web目录,提高开发效率。
1204

被折叠的 条评论
为什么被折叠?



