SVN利用POST-COMMIT钩子自动部署代码到生产环境中

svn利用post-commit钩子自动部署 流程

首先创建svn版本库/data/svn/jincon.com,然后在svn库中创建svn钩子,在开发电脑上检出最初版本,并且将自己的代码 提交到svn上,此时svn钩子将会把代码实时检出/更新到/data/site/www.jincon.com站点目录中。最后访问浏览器测试。

1、先创建版本库:

svnadmin create /data/svn/jincon.com

2、编辑post-commit文件


# vim /data/svn/jincon.com/hooks/post-commit
3、post-commit代码:



#!/bin/bash
# DateTime:2015-01-01
# AuthorName: Jincon
# description:用于实时检出的钩子

# 基本变量
export LANG=en_US.UTF-8
dateTime=`date +%F`
dateTimeMinute=`date +%H%M%S`
binSvn=/usr/bin/svn			#你svn的绝对路径
dirHtmlApp=/data/site/www.jincon.com		#检出的web站点根目录
logFileName=/tmp/svnhooks_${dateTime}.log

# svn配置
REPOS="$1"
REV="$2"

# 检出或者更新subversion,钩子的核心功能
echo  "-- $dateTimeMinute" >> $logFileName
if [ ! -d $dirHtmlApp/.svn ]; then
   # 检出SVN
   echo "$binSvn co file://$REPOS/  $dirHtmlApp" >> $logFileName
   $binSvn co file://$REPOS/  $dirHtmlApp
   if [ $? -eq 0 ]; then
      echo  "checkout ok"  >> $logFileName
   else
      echo  "checkout error"   >>  $logFileName
   fi
else
   # 更新svn
   echo " $binSvn up $REV $dirHtmlApp " >> $logFileName
   $binSvn up $REV $dirHtmlApp   >> $logFileName
   if [ $? -eq 0 ]; then
       echo  "  update sucess "  >> $logFileName
   else
       echo  "  update fial "   >>  $logFileName
   fi
fi
echo  "--" >>  $logFileName


关键词: svn , post-commit钩子

上一篇: Can't open file '/home/www/.subversion/servers':Permission denied的解决方法
下一篇: Linux下简单详细搭建SVN服务器进行版本控制

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):