`
andyhu1007
  • 浏览: 193933 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

两种不同的代码版本管理方法

阅读更多
A方法:

  在每个release中,每个人都建立自己的branch,各自的代码修改都在自己的branch中。等到release前两天,才能把代码merge到trunk里。

  前提:

  1. release要足够短。如果你的release是两三个月甚至更长时间才进行一次,那merge代码时产生的问题会让你焦头烂额。

  2. 充分的测试代码,保证代码质量。

  3. merge前,merge中(代码merge了,但还没有commit)以及merge后都要进行完整测试,以保证merge不会对trunk代码的质量产生影响。

  4. 如果merge时发现conflict,需要重新进行3的后两个步骤。

  优点:

  1. 适用于需要经常性release的项目。

  2. trunk的代码总“可用” --- 即已经经过上次release时足够的项目质量检验。

  缺点:

  1. merge时,往往会有较多的conflicts。

  2. 为了不产生太多的conflicts,需要的协调工作较多。

  3. 无法预知merge之后的代码会产生的问题。

 

B方法:

  代码的修改基于最新的trunk代码,而且每个人都可以随时把代码commit到trunk里。

  前提:

  1. 要有一个经过足够质量检测的branch版本,用作production上的版本。

  2. 要有足够的测试代码保证代码的质量。

  3. 要有持续集成工具随时监测trunk上代码的质量,如果上次build失败,则不许再commit代码,直到build被修复。

  4. story要尽量小。

  优点:

  1. 符合持续集成的理念。

  2. trunk的代码始终是最新的,而且是“可用的”。

  3. 因为commit频繁,所以产生conflict的机会较小。

  缺点:

  需要维护额外的release branch版本,当需要打补丁的时候,要在两处保持同步。

 

 

  两种管理代码的方式,各有优劣,但B方法更符合敏捷理念,而且,本质上其实是一种对A方法的替代。

分享到:
评论
3 楼 movingboy 2008-05-30  
ozzzzzz 写道
说B方法更加符合敏捷,我看未必。

能否请你深入地谈谈你倾向于哪种方法?如果两种都不能符合你们团队的要求,能否说说你们是怎么管理的?
2 楼 ozzzzzz 2008-05-30  
说B方法更加符合敏捷,我看未必。
1 楼 hantsy 2008-05-29  
这只不过是重点不同。。。我还是以为工具带来的差别。现在版本控制工具可分为集中式和分布式。cvs ,subversion都是前者的代表。

相关推荐

    陈灯可重用代码段管理器VS插件版4.0

    软件包括桌面版本和插件版本两种版本,桌面版本为独立的应用程序,不与IDE集成,使用范围更加广泛,目前最新版本为2.3;插件版本集成在Visual Studio(5.0~10.0)集成开发环境中,使用更为方便。该发布版本为插件版...

    陈灯可重用代码管理器桌面版2.3

    软件包括插件版本和桌面版本两种版本,插件版本集成在Visual Studio(5.0~10.0)集成开发环境中,使用更为方便,目前最新版 本为3.2;桌面版本为独立的应用程序,不与IDE集成,使用范围更加广泛。该发布版本为桌面...

    android sqlite的两种管理方法demmo

    android sqlite 学习,使用java的语法规则和 android自带的语法规则进行数据库的增删查改

    学生成绩管理完整代码

    完整的学生成绩管理功能,可以从文件中读取信息。

    C++学生成绩管理系统代码

    提供c++学生管理系统的代码,供大家分享学习!

    陈灯可重用代码段管理器桌面版2.5

    软件包括插件版本和桌面版本两种版本,插件版本集成在Visual Studio(5.0~10.0)集成开发环境中,使用更为方便,目前最新版本为4.0;桌面版本为独立的应用程序,不与IDE集成,使用范围更加广泛。该发布版本为桌面版...

    题库管理系统源代码(系统)

    本系统旨在为教务人员提供一套试题管理系统。 它的主要功能有专业管理、试卷管理、题库管理、用户管理及...试卷管理可以由题库的题目生成试卷,可以生成word或html两种不同格式的文件,还可以自动生成答题纸和答案。

    Singleton两种代码实现

    单例模式,Singleton两种代码实现。一般实现方法,泛型实现方法(推荐)

    PerCM个人代码管理软件

    1、现有的代码管理软件的组织构造,自己合理联想; 2、ICSharpCode.TextEditor的重新研究,加速合成; 3、sqlite数据库的使用; 4、自动更新技术的研究; 5、界面库的引入。 立刻行动起来吧! 对陈灯代码管理软件的...

    基于ssm的网上花店系统(源代码+数据库)本系统分为管理员、用户两种角色.zip

    基于ssm的网上花店系统(源代码+数据库)本系统分为管理员、用户两种角色 用户角色包含以下功能: - 登录、注册、系统公告查看、个人信息修改、购物车、订单管理、取消订单、收藏管理、留言反馈、密码修改 管理员角色...

    超市管理系统完整源代码

    超市管理系统完整 源代码 喜欢就下载吧 完成下列功能: 1. 保存及输出。超市中的各种商品信息保存在指定文件中,可以把它们输出显示。...统计输出有两种以上(含两种)商品库存量低于100的商品类别。

    银行管理系统源代码下载

    银行管理系统源代码,数据库等都有,两种不同代码编写

    陈灯可重用代码管理器桌面版2.1(请下载2.3版本:http://download.csdn.net/source/3028885)

    软件包括插件版本和桌面版本两种版本,插件版本集成在Visual Studio(5.0~10.0)集成开发环境中,使用更为方便,目前最新版本为3.2;桌面版本为独立的应用程序,不与IDE集成,使用范围更加广泛。该发布版本为桌面版...

    陈灯可重用代码管理器桌面版2.2(请下载2.3版本:http://download.csdn.net/source/3028885)

    软件包括插件版本和桌面版本两种版本,插件版本集成在Visual Studio(5.0~10.0)集成开发环境中,使用更为方便,目前最新版本为3.2;桌面版本为独立的应用程序,不与IDE集成,使用范围更加广泛。该发布版本为桌面版...

    pb图书管理系统设计代码加文档

    该系统存在两种类型的用户,一种是图书管理员另一种为读者。管理员要使用该系统对书籍和用户进行统一管理。而读者需要使用该系统查找书籍。具体功能要求如下。 1、对于管理员来说,系统要实现功能: (1) 对于书籍...

    .net库存管理源代码.zip

    仓库管理信息系统所需要实现的功能可以细分为以下几个模块:员工管理、仓库管理、货物管理、存储规则管理、货物进出控制、仓库需求生成和货物进出记录。 (1)员工管理模块 该模块负责管理信息系统所有参与仓库管理...

    完结10章SpringBoot 3 + Flutter3 实战低代码运营管理

    一般来说,按搭建应用时是否需要代码可以将广义低代码产品分为狭义低代码和零代码两种,二者均可通过可视化界面,对封装好的代码模块进行拖拉拽来完成应用搭建。 低代码:主要服务关注业务逻辑的开发部门,需要少量...

    陈灯可重用代码管理器桌面版2.0(请下载2.3版本:http://download.csdn.net/source/3028885)

    软件包括插件版本和桌面版本两种版本,插件版本集成在Visual Studio(5.0~10.0)集成开发环境中,使用更为方便,目前最新版本为3.2;桌面版本为独立的应用程序,不与IDE集成,使用范围更加广泛。该发布版本为桌面版...

    基于vscode的git pull后代码冲突的两种解决方式

    在vscode上针对git可视化操作,在git pull后出现冲突的解决方式

    web课程设计-基于Java的通讯簿管理系统(源码+数据库).zip

    (1) 安装JDK1.4.0或以上版本。 (2) 安装Apache Tomcat 4.0或以上版本。...两种用户均通过login.htm页面进入系统,所使用的用户名的身份不同即进入不同的访问界面。用户名和密码可以在数据库mydb中的user数据表中查询。

Global site tag (gtag.js) - Google Analytics