利用SVN的POST-COMMIT钩子自动部署代码
2016-06-11 14:41
330 查看
我们在开发的过程将代码提交到SVN后使用SVN的hook,通过post-commit脚本,在目标文件夹根下执行svn update操作,将更新内容同步到测试环境,这样开发调试非常方便。
post-commit内容:
--------------------------------------------
#!/bin/sh
#修改为服务编码
export LANG=zh_CN.gb2312
#Set variable
REPOS="$1"
REV="$2"
SVN=/usr/bin/svn
WEB=/data/home/htdocs
LOG=/data/home/auto_svn.log
#update the code from the SVN
$SVN update $WEB --username username --password password --non-interactive
#......................
if [ $? == 0 ]
then
echo "$REPOS" "$REV" >> $LOG
echo `date` >> $LOG
echo "##############################" >> $LOG
fi
-----------------------------------------------
需要注意:
1、需要用export指定编码。
2、需要指定svn全路径。
3、代码CO出来之后,可以进行post-commit脚本的测试了。因为svn的hooks执行的时候不带有任何的环境变量,所以我们不能通过简单的 ./post-commit 进行代码的测试。必须要使用sudo su 等命令切换到svn或者apache服务器运行用户下,用下面的方法进行测试
post-commit内容:
--------------------------------------------
#!/bin/sh
#修改为服务编码
export LANG=zh_CN.gb2312
#Set variable
REPOS="$1"
REV="$2"
SVN=/usr/bin/svn
WEB=/data/home/htdocs
LOG=/data/home/auto_svn.log
#update the code from the SVN
$SVN update $WEB --username username --password password --non-interactive
#......................
if [ $? == 0 ]
then
echo "$REPOS" "$REV" >> $LOG
echo `date` >> $LOG
echo "##############################" >> $LOG
fi
-----------------------------------------------
需要注意:
1、需要用export指定编码。
2、需要指定svn全路径。
3、代码CO出来之后,可以进行post-commit脚本的测试了。因为svn的hooks执行的时候不带有任何的环境变量,所以我们不能通过简单的 ./post-commit 进行代码的测试。必须要使用sudo su 等命令切换到svn或者apache服务器运行用户下,用下面的方法进行测试
env – ./post-commit
相关文章推荐
- 用xdebug对php进行性能分析
- javascritp 闭包
- python常见问题解决(待续)
- 用cakephp快速开发php应用--用户及权限控制
- php.ini常用配置
- iis下手动配置php
- [LeetCode][10]Regular Expression Matching解析 -Java实现
- Django权限系统auth
- [Java] 修饰符 public/private/protected 的具体区别
- c++之string.find(string)
- c++错误代码1
- Java基本特征
- Java for Web学习笔记(二一):EL(1)什么是EL
- C#中DataGridView控件绑定控件绑定数据源方式
- leetcode 203 Remove Linked List Elements C++
- Yandex.Algorithm 2016 Online Round 2 题解(待补)
- C++ 理解二维数组的指针
- spring MVC 获取request中的body体
- MATLAB地图工具箱学习总结(四)自定义投影
- [Java] 对象的声明与实例化