分支策略

一般采用一个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. 从其他分支合并来的代码,在本分支上将处于签出状态,需要在分支上执行签入操作,代码才最终完成合并。

VSO-Branch和Merge的更多相关文章

  1. 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 ...

  2. 解决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. ...

  3. SVN中Branch和Merge实践

    参考资料:http://blog.csdn.net/eggcalm/article/details/6606520 branch主要用于新功能的开发,开发过程中不断从trunk merge revis ...

  4. svn branch and merge(svn切换分支和合并)详解

    下文的实践主要是参考了TortoiseSVN的帮助文档和Subversion的在线文档,Subversion的在线文档:http://svnbook.red-bean.com/en/1.5/svn-b ...

  5. 解决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 ...

  6. 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-> ...

  7. SVN版本管理trunk及branch相关merge操作

    先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰t ...

  8. 解决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 ...

  9. 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-> ...

  10. Git 解决同步 No value for key branch.master.merge found in

    [core] repositoryformatversion = 0 filemode = false logallrefupdates = true [remote "origin&quo ...

随机推荐

  1. LeetCode——Best Time to Buy and Sell Stock I (股票买卖时机问题1)

    问题: Say you have an array for which the ith element is the price of a given stock on day i. If you w ...

  2. Unity Standard Assets 简介之 Vehicles

    这篇介绍载具资源包Vehicles. 主要包含Aircraft(飞行器)和Car(车辆)两部分,两个文件夹里分别有AircraftGuidelines.txt和CarGuidelines.txt对相关 ...

  3. Leetcode Anagrams

    Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...

  4. phpunit学习 3:

    16:17 2015/12/11phpunit学习 3:单元测试的大概步骤是:编写待测试类,编写测试用例类,编写测试类,测试.1.如果你有多个类,多个测试类的test类,那么可以编写一个AllTest ...

  5. 【BZOJ2157】旅游 LCT

    模板T,SB的DMoon..其实样例也是中国好样例...一开始不会复制,yangyang:找到“sample input”按住shift,按page down.... #include <ios ...

  6. 引用dll动态库,动态库中弹出对话框输入,将输入参数,作为变量继续调用。

    在做支付项目时,引用动态库,动态库弹出支付宝或者微信的支付码,继而接收.最终将结果返回给调用动态库方法. 首先,动态库接收的是一个string 类型的xml,如 public string Pay(s ...

  7. MVC5 视图 不显示 Styles.Render Scripts.Render 问题解决

    第一步:安装 WebGrease 使用 nuget 安装 WebGrease 安装依赖 第二步:修改配置文件 <configSections> <!-- For more infor ...

  8. tp文件上传;org/RBAC.class.php 权限类;think/page,class,php分页类;

    一.上传表单: 注意,要使用上传功能 你的表单需要设置 enctype="multipart/form-data" <form action="__URL__/up ...

  9. 带你玩转JavaWeb开发之六-mysql基本语法详解及实例(1)

    1.1.1    对数据库的表进行操作 1.1.1.1   对数据库中表进行创建 [语法:] create table 表名( 列名 列类型 [列约束], 列名 列类型 [列约束], 列名 列类型 [ ...

  10. 带你玩转JavaWeb开发之五-如何完成响应式开发页面

    响应式页面开发 使用BootStrap开发一个响应式的页面出来 响应式开发就是同一个页面在PC端与手机端Pad端显示不同的效果,以给用户更好的体验 需求分析 开发一套页面,让用户能够在PC端, Pad ...