51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师【周活动】 找茬--心里圈的故事 !【长期招募】博为峰网校招聘兼职讲师!横扫BAT,Python全栈测试开发技能大全
【109期】:python爬虫的魔力 !双11剁手不吃土,来投稿赚回血红包! 【专题】用尽一切办法只为让你学好用例 自学软件测试那点事
查看: 847|回复: 0

版本控制工具CVS使用经验介绍

[复制链接]
  • TA的每日心情

    2019-9-16 09:47
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2018-12-13 16:33:19 | 显示全部楼层 |阅读模式
    CVS(Concurrent Versions System),并发版本系统的意思,主流的开放源码网络透明的版本控制系统,用于在多人开发环境下的源码的维护。CVS对于从个人开发者到大型、分布团队都是有用的。下面介绍一下我的使用经验。

    分支的使用

    我们开发使用CVS一般在项目主干head上记录,然而有时我们为了保持版本源码相对稳定,或者为特殊的目的,需要构建分支,分别来管理控制,等源码都稳定下来,再进行分支的合并。可见建立分支的主要目的是得到一个相对稳定的阶段性版本。举个实际例子,我们开发的一个CRM项目,开始是在主干Head上开发源码,经过测试组测试基本稳定了,但仍存在未修复的bug,在发布预发布版本前为了保证程序的稳定性,我们在主干Head上又建立了2个分支:Debug分支、Release分支。Debug分支用于开发人员进行bug的修复、代码的修改、优化、新增需求功能;Release分支用于预发布或正式发布、上线前的测试、客户演示,可以将相对稳定的Debug分支与前一个Release分支(若没有就使用Debug分支)合并(Merge)的版本。这2个分支各有用途,可以独立进行互相不干扰,Head-Debug-Release,Debug是个中间版本,由于发布前发现的问题会比较多,作为发布前的缓冲、过渡、修复代码,保证Release的正常进行。开发中各分支版本打Tag会比较频繁,我们会制定了一些规范让开发人员在tag上记录解决修复问题的记录,如下:




    =======此为merger到其他分支的tag模版信息==============================================
    YYYY-M-D   ←日期  merger人:某某某   ←提交人姓名
    start t-debug-xxxx-before  end t-debug-xxxx-after  patch to release
          ↑此tag为merger代码的开始tag; ↑此tag为结束tag;       ↑此为目标分支;
    merger的文件列表:
    例如:
    cn\zwork\crm\mobile\biz\impl\MobileSystemBizImpl.java
    WebRoot\script\appmanage\product.js
    ========以下为具体bug提交的信息=======================================================
    提交人:xxx
    解决的问题:oss在ip地址认证错误时,显示提示页面error.html
    提交后tag:t-head-20120716-1016-after
    提交前tag:t-head-20120716-1016-before
    提交的文件列表:\WEB-INF\web.xml、\WebRoot\error.html
    修改说明:web.xml增加Dispatcher分发器的路径匹配“<url-pattern>*.html</url-pattern>”
              error.html为新增加的页面。
    ===============================================================================
    2012-7-05
    提交人:xxx
    解决的问题:修改操作日志的操作时间不显示、操作日志进入页面初始查询当天的操作日志
    提交后tag:t-debug-20120705-1710-after
    提交前tag:t-debug-20120705-1710-before
    提交的文件列表:logs-mapper.xml、logs-resultmap.xml、logsIndex.jsp




    经过一段时间,Debug、Release基本稳定下来,bug不太多了,我们就可以进行一次阶段性分支总体合并,按如下步骤:1)将Debug分支的代码合并到Release分支上;2)Release分支的代码合并到Head主干上。这样Head、Debug、Release分支又进一步融合一致了,我们又可以在Head上进行开发了,开发一段过程,可能又会遇到上述状况(需要再次发布、版本升级),我们就可以再次按上述的分支建立、合并规则(可以参考,也许有更好的思路),循环往复地进行基于分支的开发管理。

    开发时还要注意一点,分支的切换,最好能一个分支建立一个新的工程,比如head、debug、release分别建立一个工程,都与CVS同步。使用eclipse就比较方便做到了。如下:

    进入eclipse cvsReporsitories,取得相应分支,使用check out as 另存为新的工程,就可以建立分支对应的工程项目了。不再多说了。

    eclipse与CVS工具的结合使用

    使用cvs库,如下





    可以选择合适的分支进行查看、检出等操作。

    在项目工程右击菜单中选择cvs相关菜单项,如下




    其中Synchronize with Repository :同步cvs服务器与本地源码,可以执行提交、覆盖等同步操作;

    commit:提交当前源码文件或目录;

    update:下载服务器最新源码;

    Tag as Version:用于打版本标记Tag



    Switch to Another Branch or Version...:切换当前工程为另一个分支或版本,如下图,选中后,工程将刷新到新的版本分支。




    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2019-12-13 22:19 , Processed in 0.062187 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2019 Comsenz Inc.

    快速回复 返回顶部 返回列表