博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
svn + post-commit 实时测试php代码
阅读量:7257 次
发布时间:2019-06-29

本文共 2122 字,大约阅读时间需要 7 分钟。

  hot3.png

在开发环境中,一般是程序本地测试->服务器测试环境->正式发布上线,程序员本地写完并且测试完毕之后,提交到svn上,希望实时看提交代码后的效果。有些开发者手动检出到web站点下测试,最后发布到服务器上,这需要花费不少时间,本文将讲诉使用svn在钩子实时展示出代码的效果.
1. 环境准备 基于apache验证的svn svn域名:http://svn.ttlsa.com:801 web站点 根目录/data/site/test.ttlsa.com/ svn和站点配置这步骤我跳过了,如果你不会,请参考我们运维生存时间之前写的文章《 》和《 》
2. 流程 首先创建svn版本库/data/svn/test.ttlsa.com,然后在svn库中创建svn钩子,在开发电脑上检出最初版本,并且将自己的代码提交到svn上,此时svn钩子将会把代码实时检出/更新到/data/site/test.ttlsa.com站点目录中。最后访问浏览器测试
3. svn配置
3.1 创建svn版本库
# svnadmin create /data/svn/test.ttlsa.com
3.2 创建svn钩子post-commit
# vim /data/svn/test.ttlsa.com/hooks/post-commit#!/bin/bash# DateTime:2013-05-16 14:58:33# AuthorName: Deng Yun# description:用于实时检出的钩子# 基本变量export LANG=en_US.UTF-8dateTime=`date +%F`dateTimeMinute=`date +%H%M%S`binSvn=/usr/local/subversion-1.8.5/bin/svn # 你svn的绝对路径dirHtmlApp=/data/site/test.ttlsa.com #检出的web站点根目录logFileName=/tmp/svnhooks_${dateTime}.log# svn配置REPOS="$1"REV="$2"# 检出或者更新subversion,钩子的核心功能echo  "-- $dateTimeMinute" >> $logFileNameif [ ! -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   fielse   # 更新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   fifiecho  "--" >>  $logFileName
给执行权限
# chmod a+x /data/svn/test.ttlsa.com/hooks/post-commit
3.3 检出代码 [caption id="attachment_4200" align="alignnone" width="468"] 1 - 检出[/caption]
3.4 提交代码 在目录中新建index.php文件,内容如下:
然后提交到svn上 [caption id="attachment_4201" align="alignnone" width="618"] 2 - 提交[/caption]  
4. 实时测试php 访问http://test.ttlsa.com/index.php,如下图 [caption id="attachment_4202" align="alignnone" width="518"] 3 - 测试[/caption]  
5. 总结 思路很简单,不仅仅php可以这么做,其他程序也可以使用钩子来实现。一般情况下,推荐使用svn+钩子取代ftp传代码的方式,这样备份的问题解决了,恢复版本也相对方便。 站点:运维生存时间(转载请注明出处) 网址:http://www.ttlsa.com/svn/svn-post-commit-php-realtime-test/

转载于:https://my.oschina.net/766/blog/211510

你可能感兴趣的文章
在 UIWebView中搜索并高亮度显示文本
查看>>
js的正则表达式RegExp
查看>>
RAC1——Clusterware概念简介1
查看>>
一位10年Java工作经验的架构师聊Java和工作经验
查看>>
试除法求最小N个素数之二
查看>>
HDU2017 字符串统计
查看>>
terminator终端工具
查看>>
【转】那些相见恨晚的 JavaScript 技巧
查看>>
Lind.DDD.Authorization用户授权介绍
查看>>
谈谈设计模式~原型模式(Prototype)
查看>>
商城商品倒计时原生插件
查看>>
激光打印机的Color/paper, Xerography介绍
查看>>
敏捷开发
查看>>
react-native项目构建配置及window调试devtools
查看>>
Gym 100341C AVL Trees NTT
查看>>
第 1 章 虚拟化 - 004 - 启动第一个 KVM 虚机
查看>>
2.1.2_BeanFactory.getBean内部处理逻辑
查看>>
储存过程-原理、语法、函数详细说明
查看>>
第十六周项目6-黑豆传说
查看>>
【servlet3.0新特性】Annotation注解配置
查看>>