配置svn实现线上开发(钩子)

下面为svn服务端的一件安装命令,如果需要详细安装步骤可以参考:

svn安装详解:https://jinjiajin.cn/86.html 或https://jinjiajin.cn/1399.html


//yum安装svn
yum install subversion
//查看svn安装目录
rpm -ql subversion

创建SVN数据目录,并启动svn指向数据目录


mkdir /data/svndata
//启动svn
svnserve -d -r /data/svndata
//关闭svn
killall svnserve

创建SVN版本库


svnadmin create /data/svndata/xxx

接着会看到/data/svndata/xxx下会有四个文件夹如图

配置svn实现线上开发(钩子)-搬砖酱的笔记

修改配置文件conf下有三个文件分别是authz/passwd/svnserve.conf

authz代码示例


[aliases]

Average [/] #admin用户的权限 @admin=rw

[groups]

#svn用户 admin = user1,user2

passwd代码示例


user1 =888
user2=888

svnserve.conf代码示例(可以不用修改


[general]

anon-access = none auth-access = write password-db = passwd

[sasl]

配置完成以后重启SVN,接着进行钩子的一些设置,找到/data/svndata/xxx/hocks/post-commit.tmpl去除tmpl后缀文件为post-commit添加以下代码


 #!/bin/sh
 REPOS="$1"
 REV="$2"
 export LANG=en_US.UTF-8
 svn up /home/wwwroot/xxx/custom --username user1 --password 888
 svn up /home/wwwroot/xxx/app/b2c --username user1 --password 888
 svn up /home/wwwroot/xxx/public/app/b2c/statics --username user1 --password 888

保存后用svn执行以下命令,这个命令必须执行,否则钩子不会生效


//检出到网站
svn co --username user --password 888 svn://www.xxx.com/xxx/custom  /home/wwwroot/xxx/custom
//更新网站目录
svn up /home/wwwroot/xxx/custom --username user --password 888

//检出到网站
svn co --username user --password 888 svn://www.xxx.com/xxx/app/b2c  /home/wwwroot/xxx/app/b2c
//更新网站目录
svn up /home/wwwroot/xxx/app/b2c --username user --password 888

执行完上边命令后重启svn


killall svnserve
svnserve -d -r /data/svndata/

接着在本机安装svn,检出到本机,然后把代码放进svn目录,接着提交即可,若报255错误,post-commit文件给可执行权限即可

本机提交svn目录之前,要保证网站的目录不能有同样的文件,否则会提交失败。

扩展阅读:linux删除本目录下.svn文件


find . -type d -iname ".svn" -exec rm -rf {} \;