配置SVN的hooks功能自动更新代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置SVN的hooks功能自动更新代码相关的知识,希望对你有一定的参考价值。
前言解读
用过SVN的小伙伴们,都应该知道hooks(钩子)这个功能,的确日常企业内部测试环境经常会用过这个“特殊”的功能,今天来聊一聊SVN hooks
传统的WEB网站代码发布基本依靠手工操作 大概的整个流程如下: 开发本地环境开发代码 提交SVN版本库 然后将本地环境代码使用工具上传至待发布目录 备份原WEB站点代码目录 发布新代码至WEB目录 基于这类重复操作的问题,为了提高效率,因此,引入了SVN hooks功能 SVN安装这里就不赘述了,需要了解可参考以前的文章(如下链接) http://blog.51cto.com/13505030/2089531 安装完成,开始配置hooks功能 [[email protected] ~]#cd /svndata/doc/hooks [[email protected] hooks]#ll total 40 -rw-r--r-- 1 root root 1977 Jun 8 23:50 post-commit.tmpl -rw-r--r-- 1 root root 1638 Jun 8 23:50 post-lock.tmpl -rw-r--r-- 1 root root 2289 Jun 8 23:50 post-revprop-change.tmpl -rw-r--r-- 1 root root 1567 Jun 8 23:50 post-unlock.tmpl -rw-r--r-- 1 root root 3426 Jun 8 23:50 pre-commit.tmpl -rw-r--r-- 1 root root 2410 Jun 8 23:50 pre-lock.tmpl -rw-r--r-- 1 root root 2786 Jun 8 23:50 pre-revprop-change.tmpl -rw-r--r-- 1 root root 2100 Jun 8 23:50 pre-unlock.tmpl -rw-r--r-- 1 root root 2780 Jun 8 23:50 start-commit.tmpl 备份下配置文件 [[email protected] hooks]#cp post-commit.tmpl post-commit [[email protected] hooks]#chmod +x post-commit 修改post-commit配置文件 [[email protected] hooks]# vim post-commit #!/bin/sh REPOS="$1" REV="$2" export LC_CTYPE="en_US.UTF-8" export LC_ALL= LOCALPATH="/svncode/test/" WEBPATH=/usr/local/apache-tomcat-8.5.9/webapps/ DATE=`date +%F` SVN=/usr/bin/svn [ ! -d ${LOCALPATH} ] && mkdir ${LOCALPATH} -p ##update code $SVN update ${LOCALPATH} --username=test --password=test123 #backup web dir cd /usr/local/apache-tomcat-8.5.9/webapps/ mv test test.${DATE} ##update code and restart Tomcat service ln -s $LOCALPATH $WEBPATH cd /usr/local/apache-tomcat-8.5.9/bin/ ./shutdown.sh sleep 2 ./startup.sh 备注:SVN服务器与WEB在同一台服务器上,如果分开,配置是需要有所变化的,以上配置供参考,但方法与步骤相同 首先我们在WEB站点目录下更新下当前的代码,这个更新的动作相当于将SVN的代码目录在WEB目录下复制了一个“副本” svn co svn://192.168.4.254:/doc/test /svncode/test/ --username=test01 --password=test123 [[email protected] test]# pwd /usr/local/apache-tomcat-8.5.9/webapps/test [[email protected] test]# ll total 216 -rw-r--r-- 1 root root 1241 Jun 11 04:06 index.html -rw-r--r-- 1 root root 142943 Jun 10 20:12 server.jpg -rw-r--r-- 1 root root 68533 Jun 10 20:12 u.jpg 打开浏览器测试访问 接下来模拟开发修改相关代码文件,重新提交了代码至SVN版本库 重新打开浏览器测试访问页面是否更新? 代码自动更新至WEB目录完成
以上是关于配置SVN的hooks功能自动更新代码的主要内容,如果未能解决你的问题,请参考以下文章