配置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下会有四个文件夹如图
修改配置文件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 {} \;