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

这个结构有以下几个要点:
- MAIN分支包括所有的功能,并且这些功能是通过集成测试的(integration tests),换句话说,MAIN分支的代码是可以release的。
- DEVELOPMENT分支包含正在开发中的代码。在此分支中的功能通过集成测试后,可以合并的MAIN分支中(把DEVELOPMENT分支中的代码合并到MAIN分支的过程称为反向集成reverse integration,那么把MAIN分支中的代码合并到DEVELOPMENT分支的过程就称为正向集成forward integration)。
- types of builds.
建立分支/合并分支的操作方法
folder和branch:1.从一个分支中创建一个分支,在后者中在创建一个分支,这样分支会形成一个层次结构;2.但是在Source Control Explorer中,各个分支之间是看不出层次关系的,TFS使用folder来组织各个分支的,也就是根据分支的作用不同可以放在不同的folder中;3.虽然可以在folder与folder之间进行分支和合并,但是最佳实践是只在分支之间进行分支和合并的操作。
一句话总结一下folder和branch:用folder来组织各个分支;在分支上进行分支和合并操作。
在Source Control Explorer中:
- 新建一个folder,准备将分支建立在该folder中;
- 把准备作为MAIN分支的folder,转换成branch;
- 在MAIN分支上右击,选择Branching and Merging => Branch...,在弹出的窗口中填写Target Branch Name后,点击“Branch”按钮,就会创建一个分支;
- 在新分支上右击,选择Get lastest version,将该分支的代码获取到本地。获取到本地的代码会保存在与其他分支不同的文件夹中(也就是每个分支在本地都有一个不同的working folder);
- 转到新分支上,进行开发、测试,同时要经常把MAIN分支中的代码合并到自己的新分支上(在Source Control Explorer中,在新分支上右击,选择Branching and Merging => Merge...,在弹出的窗口中填写Source Branch(是其中的代码要合并到其他分支中的分支)和Target Branch(是接受其他分支中代码的分支),点击“Next”按钮,最后点击“Finish”按钮,完成合并);
- 自己的新分支中代码完成开发、测试后,要合并到MAIN分支中,操作方法同5,只是Source Branch和Target Branch互换一下;
- 从其他分支合并来的代码,在本分支上将处于签出状态,需要在分支上执行签入操作,代码才最终完成合并。
VSO-Branch和Merge的更多相关文章
- eclipse git 一个错误:the current branch is not configured for pull No value for key branch.xxx.merge found
eclipse git 一个错误:the current branch is not configured for pull No value for key branch.xxx.merge fou ...
- 解决The current branch is not configured for pull No value for key branch.master.merge found in config
使用Git Pull项目的时候出现这个问题: The current branch is not configured for pull No value for key branch.master. ...
- SVN中Branch和Merge实践
参考资料:http://blog.csdn.net/eggcalm/article/details/6606520 branch主要用于新功能的开发,开发过程中不断从trunk merge revis ...
- svn branch and merge(svn切换分支和合并)详解
下文的实践主要是参考了TortoiseSVN的帮助文档和Subversion的在线文档,Subversion的在线文档:http://svnbook.red-bean.com/en/1.5/svn-b ...
- 解决The current branch is not configured for pull No value for key branch.master.merge found in confi
1.在本地工程目录找到config文件(我的是在E:\rocket\rocket\.git): 2.修改config文件内容为: [core] repositoryformatversion = fi ...
- Git hub pull时候的错误 : The current branch is not configured for pull No value for key branch.master.merge found in configuration
网上多半都是命令行下的解决方案,我用的是EGit,所以要在eclipse里(我的版本是kepler)把下面这句话添加到配置文件中. Window->Preference->Team-> ...
- SVN版本管理trunk及branch相关merge操作
先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰t ...
- 解决Git报错:The current branch is not configured for pull No value for key branch.master.merge found in configuration
1.在本地工程目录找到config文件(我的是在D:\git\demo\.git):2.修改config文件内容为: [core] repositoryformatversion = 0 filemo ...
- git:解决The current branch is not configured for pull No value for key branch.master.merge found in config
网上多半都是命令行下的解决方案,我用的是EGit,所以要在eclipse里(我的版本是kepler)把下面这句话添加到配置文件中. Window->Preference->Team-> ...
- Git 解决同步 No value for key branch.master.merge found in
[core] repositoryformatversion = 0 filemode = false logallrefupdates = true [remote "origin&quo ...
随机推荐
- C# Winform TreeView 的一些基本用法
下面是treeview的用法TreeView组件是由多个类来定义的,TreeView组件是由命名空间"System.Windows .Forms"中的"TreeView& ...
- VS2008切换设计视图卡死 停止响应
最近VS2008出现一个问题,打开项目后很快就非常慢,特别是切换设计视图马上卡死,很久也反应不过来.网上找了几种办法,都不好使,有的说是office影响的,有的说要改注册表,都试了一下,还是没用.后来 ...
- js闭包Demo
我们先看一个关于Javascript利用循环绑定事件的例子: 例如:一个不确定长度的列表,在鼠标经过某一条的时候改变背景. ﹤!DOCTYPE html PUBLIC "-//W3C// ...
- Linux Kernel Oops异常分析
1.PowerPC小系统内核异常分析 1.1 异常打印 Unable to handle kernel paging request for data at address 0x36fef31eFa ...
- SecureCRT中python脚本编写
SecureCRT中python脚本编写学习指南 SecureCRT python 引言 在测试网络设备中,通常使用脚本对设备端进行配置和测试以及维护:对于PE设备的测试维护人员来说使用较多是Secu ...
- 【转】安装第三方库出现 Python version 2.7 required, which was not found in the registry
安装第三方库出现 Python version 2.7 required, which was not found in the registry 建立一个文件 register.py 内容如下. 然 ...
- *HDU3635 并查集
Dragon Balls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- Areas on the Cross-Section Diagram
Areas on the Cross-Section Diagram Aizu - ALDS1_3_D Areas on the Cross-Section Diagram 地域の治水対策として.洪 ...
- synchronized的实现原理和应用
在多线程并发编程中synchronized是元老级的角色,人多称重量级锁. synchronized实现同步的基础:Java中的每一个对象都可以作为锁.具体表现有如下3种: 1.对于普通同步方法,锁时 ...
- Java 中多条件排序
Collections.sort(ghEntityList, new Comparator<GongHuiEntity>() { @Override public int compare( ...