分支策略

一般采用一个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. redis数据类型之—List

    (1)list 简单介绍 list是一个有序的字符串列表,是使用双向列表实现的,可以实现最新消息排行.消息队列等功能. (2) list 常用命令

  2. Go语言 使用内置Http组件

    package main import ( "net/http" ) func SayHello(w http.ResponseWriter, req *http.Request) ...

  3. OSI七层模型及TCP/IP四层模型

    1)  OSI七层模型及TCP/IP四层模型 OSI七层模型:是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系.它是一个七层的.抽象的模型,不仅包括一系列抽象的术语或概念,也包 ...

  4. TTrayIcon用法

    TTrayIcon用法 self.trycn1.Icon:=Application.Icon; Self.trycn1.Hint:=self.Caption; self.trycn1.Visible: ...

  5. Codeforces444C DZY Loves Colors(线段树)

    题目 Source http://codeforces.com/problemset/problem/444/C Description DZY loves colors, and he enjoys ...

  6. 前端性能监控方案window.performance 调研(转)

    1. 业界案例 目前前端性能监控系统大致为分两类:以GA为代表的代码监控和以webpagetest为代表的工具监控. 代码监控依托于js代码并部署到需监控的页面,手动计算时间差或者使用浏览器的的API ...

  7. Codeforces Round #256 (Div. 2)

    A - Rewards 水题,把a累加,然后向上取整(double)a/5,把b累加,然后向上取整(double)b/10,然后判断a+b是不是大于n即可 #include <iostream& ...

  8. java.lang.NoClassDefFoundError:

    异常信息:十一月 10, 2016 5:20:15 下午 org.apache.catalina.core.StandardContext loadOnStartup严重: Servlet /mgr ...

  9. this, 你到底指向谁?

    JS中, this的值到底是什么? 几个月之前, 拜读了<javascript语言精髓>, 里面对于这个问题, 做出了很好的解释... JS中, this的值取决于调用的模式, 而JS中共 ...

  10. 服务器中配置多个Tomcat及内存溢出配置

    1.更改server.xml文件中端口(启动.关闭端口) 2.在startup.bat文件开头加上 SET JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0 ...