`
student_lp
  • 浏览: 428650 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

    在上一章中讲述了非Apache模式的svn安装。安装完成svn后,就可以实现svn提交代码同步更新测试环境中的代码了(即实现svn和测试环境的集成)。
    当然,我们在开发中会存在至少三套环境,即:开发自测环境(本地生产环境)、专业测试环境(与正式环境同步)、正式服务环境。要处理好三套环境中的代码管理,这也不是一件很容易的事情,需要根据各公司项目组的安排。我就不讲我们的处理方案了(呵呵保密)。
    下面讲一下SVN与测试环境的集成:
    1、安装完成svn后,创建数据仓储(这些在上一章中讲过了)。以我的为例,我的代码数据仓储的位置为:/opt/svndata/test。
        进入/opt/svndata/test目录后,发现存在一个hooks目录,该目录就是svn钩子函数存储的位置,这是我们本次实现所依赖的。
    2、svn提供多种svn钩子函数供用户扩展实现一定的功能,我们这里采用post-comment钩子函数,实现两个地方的代码同步。即当开发人员自测完成后,提交代码到svn时(comment),同步实现将代码更新到测试环境一份。
    3、最初搭建好svn环境后,将原始项目代码目录更新到测试环境代码位置,执行指令:
        /usr/local/svn/bin/svn checkout       URL      PATH。例如:/usr/local/svn/bin/svn checkout svn://127.0.0.1:3690/test /www
通过以上检出,就可以保证/www中的代码通过svn update来更新了。
    4、在hooks目下,复制一份post-commit.tmpl并重命名为post-commit。然后编辑该文件(post-commit  当用户提交代码时代码提交完成时,svn会自动调用post-commit钩子函数,调用该文件post-commit):vi post-commit;编写内容如下:
--------------------------------------------------------------------------------------------
#!/bin/sh
#Program:
#       This program update "/www" code on user commit
#History:
#       2012/11/07 xxx@xxx.com 1.0

REPOS="$1"
REV="$2"

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

/usr/local/svn/bin/svn update /www/cdstm --username xxx --password xxx
if [ $?==0 ]
then
        echo -e "ok" >> /opt/svnlog/log.txt
else
        echo -e "false" >> /opt/svnlog/log.txt
fi
exit 0
---------------------------------------------------------------------------------------------------------
编辑完成后,保存。然后我们就可以测试了。呵呵。就这么简单。
注意:1、REPOS="$1"  表示svn仓库的绝对路径值,以我为例:/opt/svndata/test
                REV="$2"        表示最新的一个版本号。最后一个版本号
         这两个变量是
post-commit自动接收的。
    2、在这里执行svn指令的时候采用了绝对路径,而不是通过PATH将svn指令的路径包含进来,是为了防止Linux已经自带安装了svn指令。

分享到:
评论

相关推荐

    基于jenkins整合ant和svn的持续集成环境

    而且项目的自动构建部署和平台无关,不限定时间,可以定时操作,将开发人员从测试环境的维护工作中解脱出来。以下是jenkins+ant+svn持续集成环境的搭建和应用。1.下载jenkins.war2.有两种启动方法,首先保证系统中...

    nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建一

    nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建:基于敏捷开发流程及持续集成理念,通过工具,搭建软件开发和自动化测试的环境,提高开发效率,简化管理流程;此为部分一

    基于jenkins持续集成环境的构建

    基于jenkins持续集成环境的构建传统的项目构建过程 1、 研发部将代码提交到SVN/GIT等代码管理工具中; 2、 研发将负责进行本地打程序包。 3、 研发将负责打的程序包上传到SVN/GIT 4、 运维/测试 从SVN/GIT 下载最新...

    svn开发规范

    主目录里分三个子目录:trunk,branches,tags(根据是否能编译出war文件来...独立打包成war包的都需要分三个子目录),jenkins配置时trunk对应测试环境,branches对应集成开发环境,tags对应pre(预生产)和生产环境

    SVN操作手册中文版网页格式

    4.29. 与基于 WEB 的版本库浏览器集成 4.30. TortoiseSVN的设置 4.30.1. 常规设置 4.30.1.1. 右键菜单配置 4.30.1.2. TSVN对话框设置一 4.30.1.3. TSVN对话框设置二 4.30.1.4. TortoiseSVN 颜色设置 4.30.2. ...

    Jenkins持续集成自动化搭建(基于Msbuild+SVN+Python+Jmeter)

    jenkins搭建 基于Python自动化框架 C#环境Msbuild Jmeter测试工具集成

    Jenkins持续集成引擎.rar

    Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java...

    测试笔记(从零开始)

    测试环境搭建文档: 130 用例执行: 130 填BUG报告: 130 第十五章 QC(Quality Center) 131 QC后台: 133 QC前台: 134 Requirements 需求模块 134 Test Plan 测试用例模块 135 Test Lab 测试执行模块 135 第十...

    Eclipse插件开发-测试用例自动生成工具.zip

    持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM...

    轻量级覆盖率测试工具logcover.zip

    使用场景: 度量异常分支测试覆盖率,覆盖单元测试、模块测试、集成测试  背景: 异常测试是软件测试中非常重要的一环,异常测试充分与否直接影响到测试质量和产品线上稳定性。logcover是Baidu质量部推出的一款...

    Java与Kotlin开发实用工具包.zip

    持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM...

    基于javaweb的小型超市信息管理(进销存)系统。开发工具为MyEclipse.zip

    持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM...

    基于 Spring Boot+MINA 开发的一个推送工具.zip

    持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM...

    一个超级牛逼的表情库,可使用表情及贴图功能,方便好用,抽离图片加载接口,图片加载工具可让开发者自己选择。.zip

    持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM...

    安卓平台 JavaScript 自动化工具 (Auto.js 二次开发项目).zip

    持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM...

    安卓开发工具库.zip

    持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM...

    一款Android快速开发框(常用工具箱,控件,刷新,数据适配器).zip

    持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM...

    基于TCP,Socket编程,模仿腾讯QQ界面,使用Java开发的一款网络聊天工具.zip

    持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM...

    极简化的Android App开发框架和App内调试工具.zip

    持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM...

Global site tag (gtag.js) - Google Analytics