分支在版本树中的应用(使用subversion)

场景

项目已上线,需不断维护。要求加入全市统一的功能,并马上上线,功能已经开发并测试,目前正在修改一些小的bug。但是新需求在不断引入:修改周期长,由于新需求还未完全实现并测试,bug修正后无法马上发布新版本。

产品化的软件,可能会有多版本存在,其中部分代码需要不断同步。

这两种应用场景,都可以考虑建立分支版本,使用版本控制工具的自动合并功能,更好的实现配置管理。

基本概念

REVISION 修订版本号

HEAD 版本库中的最新版本

 

下面三个是本地路径:

BASE 如果发生本地修改,BASE版本就是本地未修改版本

COMMITEED BASE之前最后修改的版本

PREV 最后修改版本之前的版本,技术上也叫COMMITEED-1

拷贝-修改-合并方案

 

版本库和修订号

         全局修订号,一个修订号对应一个版本树,commit之后产生全局修订号,本地工作拷贝为混合版本,update之后是本地工作拷贝为最新的全局修订号。

         Commit之后进入混合修订版本。Pull push分离原则

常规工作方式:

svn import 导入项目到svn

svn checkout 得到工作拷贝

 

 

建立分支

使用svn copy命令或工具创建

建立分支后的版本变化

分支合并

注意:每次合并,提交都建立日志。选择好合并到哪个工作拷贝

主干合并到分支

范围合并或者版本树合并(最后一个)

方法1:

指定主干版本的版本范围,此范围内被合并到分支

方法2

两个不同版本树合并

 

选择分支指定版本号(最后一次同步版本)到最新的主干版本直接版本,此版本范围内的版本被同步

 

解决冲突:使用版本库版本或者使用本地版本,或者编辑修改

 

 

分支合并到主干

Reintegrate brache或者不同版本树合并

posted on 2011-01-13 13:42  lodestar  阅读(2039)  评论(4编辑  收藏  举报

导航