代码改变世界

VSO-Branch和Merge

2015-10-05 22:33  昏晓  阅读(588)  评论(0编辑  收藏  举报

分支策略

一般采用一个MAIN分支,一个或多个DEVELOPMENT分支的分支结构,如下图(来自:https://msdn.microsoft.com/en-us/library/ee782536.aspx):

这个结构有以下几个要点:

  1. MAIN分支包括所有的功能,并且这些功能是通过集成测试的(integration tests),换句话说,MAIN分支的代码是可以release的。
  2. DEVELOPMENT分支包含正在开发中的代码。在此分支中的功能通过集成测试后,可以合并的MAIN分支中(把DEVELOPMENT分支中的代码合并到MAIN分支的过程称为反向集成reverse integration,那么把MAIN分支中的代码合并到DEVELOPMENT分支的过程就称为正向集成forward integration)。
  3. types of builds.

 

建立分支/合并分支的操作方法

folder和branch:1.从一个分支中创建一个分支,在后者中在创建一个分支,这样分支会形成一个层次结构;2.但是在Source Control Explorer中,各个分支之间是看不出层次关系的,TFS使用folder来组织各个分支的,也就是根据分支的作用不同可以放在不同的folder中;3.虽然可以在folder与folder之间进行分支和合并,但是最佳实践是只在分支之间进行分支和合并的操作。

一句话总结一下folder和branch:用folder来组织各个分支;在分支上进行分支和合并操作。

在Source Control Explorer中:

  1. 新建一个folder,准备将分支建立在该folder中;
  2. 把准备作为MAIN分支的folder,转换成branch;
  3. 在MAIN分支上右击,选择Branching and Merging => Branch...,在弹出的窗口中填写Target Branch Name后,点击“Branch”按钮,就会创建一个分支;
  4. 在新分支上右击,选择Get lastest version,将该分支的代码获取到本地。获取到本地的代码会保存在与其他分支不同的文件夹中(也就是每个分支在本地都有一个不同的working folder);
  5. 转到新分支上,进行开发、测试,同时要经常把MAIN分支中的代码合并到自己的新分支上(在Source Control Explorer中,在新分支上右击,选择Branching and Merging => Merge...,在弹出的窗口中填写Source Branch(是其中的代码要合并到其他分支中的分支)和Target Branch(是接受其他分支中代码的分支),点击“Next”按钮,最后点击“Finish”按钮,完成合并);
  6. 自己的新分支中代码完成开发、测试后,要合并到MAIN分支中,操作方法同5,只是Source Branch和Target Branch互换一下;
  7. 从其他分支合并来的代码,在本分支上将处于签出状态,需要在分支上执行签入操作,代码才最终完成合并。