我们的项目在某一阶段通常会发布一个版本,供客户进行使用,然后我们会继续开发下一个版本,如果这时候客户正在使用的那个版本发现了bug,我们当然需要更改bug,并且给客户发布更新补丁包。这时就需要创建基本此版本的一个分支,分支创建完成后,我们同时还需要将此bug在我们的未来版本中消除掉。因此需要将此分支的更改合并到我们的下一个版本中,也就是我们目前正在使用的head工作空间。因此理想的流程为:
发布版本A1.0 ---〉继续开发下一版本A1.1 ----〉版本A1.0发现存在bug ----〉checkout此版本,修改存在的bug ---〉将修改创建分支branch_A1.0_bug1 ---〉发布更新补丁 ----〉将分支合并到主工作空间中。
在eclipse中的使用步骤:
1、选择项目,单击右键--〉team--->tag as version... 。此步骤创建一个版本
2、继续开发项目的下一个版本
3、客户发现存在bug,检出客户正在运行的版本。选择项目,单击右键---〉Replace With ---> Another Branch or Version,选择客户正在使用的版本。
4、在当前工作空间(客户运行版)中修改程序,完成bug修改。
5、创建该版本的分支,选择项目,单击右键---〉Team ----> Branch...。创建修改了该bug的分支。
6、给客户发布更新补丁。
7、将该分支合并到主干版本中。
a 选择项目,单击右键---〉Replace With---->Another Branch or Version,选择head,载入主版本。
b 选择项目,单击右键---〉Team ---> Merge...,选择起点版本,即客户A1.0版,选择下一步,然后选择分支 branch_A1.0_bug1 ,最后点击完成。在cvs的视图中将会显示这个分支的更改,将这些更改合并到工作空间 中,这样主工作版本,就已经同样修改了该bug。
8、一切完成,同步,提交。
注意:分支合并是比较版本A1.0和这个版本下的分支之间的不同,将这些不同合并到Head中。
我们打开图图Eclipse的CVS视图,可以看到一个服务器下可以分为三部分
HEAD、Branches、Versions先要理解这三部分的作用
HEAD:当前项目的主干版本,我们平常的开发都是在HEAD下开发。
Versions:在HEAD下面开发完一个完整的版本后就要打版本。也就是存储这个项目的一系列的版本。
选择项目,单击右键--〉team--->tag as version... 。此步骤创建一个版本
Branches:每一个版本下面可以有分支。
创建该版本的分支,选择项目,单击右键---〉Team ----> Branch...。
Every CVS repository has at least one branch, referred to as HEAD.(每个项目至少有一个Branch,该Branch被称为HEAD)
Under certain conditions, more than one branch may exist in a repository. For example, one branch may be for ongoing work, and another branch may be for maintenance work.
(某些条件下,会有多个Branch,比如一个Branch是用来推进工作的,另一个是用来维护的。这个我们经常遇到,比如我们开发完了一个版本在生产系统上跑着;后来有了新的业务需求,我们需要增加新功能,同时还要能运维以前的版本。)
由Branch够成一个代码树。
开始的时候,任何一个module都有一个主枝被称为'HEAD'。Branch是一棵正常生长的代码树中的枝杈。
一个branch最终要么被合并到主干中去,要么被结束。branch通常用来debug,如果这个bug被fix了,修改bug的代码应该被合并到主枝上去。 一个branch也可能经历多次与主枝的合并。
![Myeclipse集成cvs - 郭懋林 - 郭懋林的博客 Myeclipse集成cvs - 郭懋林 - 郭懋林的博客](http://img2.ph.126.net/Hn0P2Poj9cWnseaChvvhMw==/1891793318572576313.jpg)