【转】TFS上分支和标签的用法

什么时候用分支:  例如为某个客户定制的专用版本,和主干的特性有很大差别.不具通用性的需求.

                       大的版本修改,例如2.0 到3.0 加了很多特性,但2.0 还有维护.改bug

 

什么时候用标签: 小版本的发布, 如2.1.1到2.1.2.

 

 

 

分支的优点: 清晰,容易操作,程序员只要get latest/checkin latest就可以了

 

分支的缺点: 合并比较麻烦, 解决方法是要么是定期同步或者干脆不同步.

 

 

 

标签的优点: 灵活

标签的缺点: 如果要对某个label的版本进行hotfix, 操作起来比较麻烦, 要先get specific version by label, 然后修改代码,checkin之后会产生一个新的changeset, 然后在一个workspace里面get labelversion,然后get changset, 重新label一个version.来发布hotfix. 发布之后还要把之前latest的代码copy一份,重新check in latest

 

========================================

有策略地进行分支

源代码是开发工作中的一项重要资产。但如何在多个开发人员同时处理文件更新时有效管理和演化源文件成为了一个难题。可以使用版本控制系统在共享储存库中存储源代码、隔离并行开发工作、集成代码更改以及恢复以前的文件版本。版本控制中的一个关键元素是分支,利用分支可进行同步开发。如果有策略地进行分支,则可保持软件的多个版本的顺序和一致性。

Team Foundation 提供一个灵活可靠的版本控制系统。您可以使用 Team Foundation 版本控制管理开发源代码、文档、工作项和由团队处理的其他关键信息的过程中的多个版本。有关 Visual Studio Team Foundation Server 中的版本控制的更多信息,请参见使用版本控制。

在通过多个项目发布同时引入了多个更改时,团队如何管理代码?


在使用版本控制系统时,您必须考虑如何设置分支结构。可以通过镜像源代码文件来创建一个分支。然后,可以在不影响源的情况下更改该分支。例如,如下图的分支结构所示,MAIN 分支包含已通过集成测试的已完成功能,而 DEVELOPMENT 分支包含团队正在构建的代码。当 DEVELOPMENT 分支中的新功能完成并可通过集成测试时,您可以将代码从 DEVELOPMENT 分支提升到 MAIN 分支中。此过程称为“反向集成”。反之,如果您将代码从 MAIN 分支合并到 DEVELOPMENT 分支中,则此过程称为“正向集成”。

 

有关如何创建和合并代码分支的更多信息,请参见 CodePlex 网站上的以下页面:Team Foundation Server Branching Guide 2.0(Team Foundation Server 分支指南 2.0)。

分支和合并需要遵循下列原则:

  1. 每个分支都必须具有一个定义的策略,此策略与如何将代码集成到相应分支中有关。例如,在上图的分支结构中,可以指定一个团队成员来拥有和管理 MAIN 分支。该成员负责执行初始分支操作、将更改从 DEVELOPMENT 分支反向集成到 MAIN 分支,以及将更改从 MAIN 分支正向集成到 DEVELOPMENT 分支。当 MAIN 分支也从其他分支集成更改时,正向集成非常重要。

  2. MAIN 分支必须包含已通过集成测试的代码,以便始终准备进行发布。

  3. 由于团队成员会定期签入更改,因此 DEVELOPMENT(或工作)分支将不断演变。

  4. 标签是分支中的文件在某个特定时间的快照。

    有关更多信息,请参见使用标签获取文件快照。

利用 Team Foundation Build,可以从分支的几种生成类型中进行选择:手动、连续、封闭、滚动和计划。建议 MAIN 分支具有封闭签入生成类型。这意味着,DEVELOPMENT 分支必须先通过 MAIN 分支的所有要求,然后您才能提交反向集成。DEVELOPMENT 分支应运行连续生成类型,因为团队必须尽快了解影响 DEVELOPMENT 分支的新签入的发生时间。

团队应采用何种频率进行反向集成和正向集成?


如下图所示,反向集成和正向集成应至少在用户情景完成时进行。虽然每个团队对于完成的定义可能不同,但完成用户情景通常意味着完成了功能和对应的单元测试。只能在单元测试验证 DEVELOPMENT 分支的稳定性后反向集成到 MAIN 分支中。

 

如果您具有多个工作(即 DEVELOPMENT)分支,则当任意分支集成到 MAIN 分支时应立刻正向集成到所有工作分支。因为 MAIN 分支保持稳定,所以正向集成是安全的。工作分支中可能会发生某些冲突或失败,这是因为无法保障工作分支是稳定的。

应尽快解决所有冲突,这非常重要。通过对 MAIN 分支使用封闭签入,可以使反向集成变得简单得多,因为质量要求可帮助避免 MAIN 分支中发生冲突或错误。有关更多信息,请参见签入到由封闭签入生成过程控制的文件夹。

团队如何管理实现不同用户情景的源?


如下图所示,可以定期将更改签入工作分支以完成用户情景。可以在同一分支中同时实现多个用户情景,但仅当所有进行中的工作都已完成时才能反向集成到 MAIN 分支。建议您按照类似大小对用户情景进行分组,因为您不希望大用户情景阻止多个小用户情景的集成。可以将两组用户情景拆分为两个分支。

 

团队应在何时添加分支?


以下情况下应创建分支:

  • 在必须按与现有分支不同的时间表/周期发布代码时。

  • 在代码需要不同的分支策略时。如果创建具有新策略的新分支,则可以为项目增添策略价值。

  • 在向客户发布功能且团队打算进行不影响计划的发布周期的更改时。

不应对每个用户情景创建分支,因为这会产生较高的集成成本。虽然通过  可方便地进行分支,但在分支很多时,管理分支的开销可能会很大。

从版本控制的角度,团队如何管理发布?


团队应能在任意冲刺 (sprint) 末尾发布代码。通过使用 Team Foundation Server,可以标记一个分支以在某个特定时间点为代码拍摄快照。如下图所示,可以为发布标记 MAIN 分支。这样,您可以将分支返回到此时间点时的状态。

 

因为必须在发布时实现更新,所以为发布创建分支可帮助团队继续独立处理下一个冲刺 (sprint),而不会与将来的发布产生冲突。下图显示了一个分支,该分支包含更新代码,随后在第二个冲刺 (sprint) 末尾进行发布后,该分支反向集成到 MAIN 分支。

 

在为发布创建分支时,应从 MAIN 分支(该分支最稳定)创建分支。如果您从工作分支对发布进行分支,则会导致集成问题,因为无法保证工作分支的稳定性。

http://msdn.microsoft.com/zh-cn/library/ee782536.aspx

 

http://msdn.microsoft.com/zh-cn/magazine/gg598921.aspx

 

 

==================

标签是逻辑上的

分支是物理上的

标签历史版本比较、在修改时,中间做应急发布不方便,多任务并发,多团队合作有问题,客户端一个版本。

分支可在任意时刻在主线上发布、修复应急bug、专用版不影响主线,客户端多个版本,容易混乱。

标签和分支的作用:大版本区分。

标签在出现hotfix,并发任务,人员放假回家的情况,大团队作业的情况确实不好。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439471.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PAT - 甲级1034】Head of a Gang (30分)(并查集)

题干: One way that the police finds the head of a gang is to check peoples phone calls. If there is a phone call between A and B, we say that A and B is related. The weight of a relation is defined to be the total time length of all the phone c…

重读经典(CLIP上):《Learning Transferable Visual Models From Natural Language Supervision》

CLIP 论文逐段精读【论文精读】这一次朱毅博士给大家精读的论文是 CLIP,来自于 OpenAI,是图像文本多模态领域一个里程碑式的工作。 CLIP 的影响力可见一斑,如果按照沐神之前讲的如何判断一个工作的价值来说,CLIP 应该就是 1001001…

TFS准备(一)

一、TFS概念: TFS全称Team FoundationServer,是应用程序生命周期管理的服务端,功能包括如图功能:源代码管理,版本控制,团队开发协作,统一集成,测试管理等。 二、TFS安装要求&#…

【PAT - 甲级1094】The Largest Generation (25分)(dfs建树)

题干: A family hierarchy is usually presented by a pedigree tree where all the nodes on the same level belong to the same generation. Your task is to find the generation with the largest population. Input Specification: Each input file contai…

重读经典(CLIP下):《Learning Transferable Visual Models From Natural Language Supervision》

上文链接:重读经典(CLIP上):《Learning Transferable Visual Models From Natural Language Supervision》 5. 实验 现在我们已经知道 CLIP 是如何进行预训练的以及作者为什么选用对比学习来预训练 CLIP,接下来我们就…

TFS创建团队项目(三)

打开Visual Studio 2013,视图-团队资源管理器-连接图标(插头图标) 当前是没有TFS服务器,点击服务器按钮 添加,并在URL地址栏里输入装有TFS的服务器IP地址(配置完TFS后有这个URL:http://tfs-serv…

【PAT - 甲级1007】Maximum Subsequence Sum (25分)(前缀和)

题干: Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to be { N​i​​, N​i1​​, ..., N​j​​ } where 1≤i≤j≤K. The Maximum Subsequence is the continuous subsequence which has the l…

详解4D毫米波雷达数据集(VOD)Multi-class Road User Detection with 3+1D Radar in the View-of-Delft Dataset

Multi-class Road User Detection with 31D Radar in the View-of-Delft Dataset本文介绍一个新的自动驾驶数据集:VOD,论文收录于 ICRA2022。下一代毫米波雷达除了提供距离、方位和多普勒速度外,还会提供高度信息。 在本文中,作者…

自动驾驶之心:毫米波雷达-视觉融合感知方法(前融合/特征级融合/数据级融合)

毫米波雷达-视觉融合感知方法(前融合/特征级融合/数据级融合)分享一个自动驾驶之心的报告:毫米波雷达与视觉融合目标检测。 作者主页为:https://www.zhihu.com/people/nacayu 文章目录1. 毫米波雷达与相机融合检测背景2. 主流融合…

【PAT - 甲级1095】Cars on Campus (30分)(模拟)

题干: Zhejiang University has 8 campuses and a lot of gates. From each gate we can collect the in/out times and the plate numbers of the cars crossing the gate. Now with all the information available, you are supposed to tell, at any specific t…

TFS中的迭代(五)

从团队资源管理器中打开迭代选项。 TFS在新建完团队项目后会自动为本团队项目新建迭代子项,包含发布和冲刺。第一级为团队项目TestProject,第二层为发布,第三层为冲刺,这样的层次一共可以建14层。 这些选项可以编辑,添…

2022百度ApolloDay技术开放日:文心大模型在自动驾驶感知中的落地应用

2数据处理大模型技术是自动驾驶行业近年的热议趋势,但能否落地应用、能否用好是关键难题。百度自动驾驶依托文心大模型特色优势,率先实现技术应用突破。百度自动驾驶技术专家王井东表示:文心大模型-图文弱监督预训练模型,背靠文心…

【PAT - 甲级1155】Heap Paths (30分)(栈,dfs,二叉树)

题干: In computer science, a heap is a specialized tree-based data structure that satisfies the heap property: if P is a parent node of C, then the key (the value) of P is either greater than or equal to (in a max heap) or less than or equal to…

TFS中的工作项(六)

TFS中的工作项 在VS中打开团队资源管理器 工作项有功能,产品积压工作项,任务,测试用例,Bug,障碍,它们之间的关系是:一个产品或应用,有一系列功能,功能最大,可…

单目3D物体检测模型(CaDDN): Categorical Depth Distribution Network for Monocular 3D Object Detection

本文介绍一篇单目3D物体检测模型:CaDDN,论文收录于 CVPR2021。 单目3D物体检测的主要挑战在于准确预测物体深度,由于缺乏直接的距离测量,因此必须根据物体和场景线索来推断物体深度。过去许多方法试图直接估计深度来辅助3D检测&am…

【PAT - 甲级1003】Emergency (25分)(Dijkstra,最短路条数,双权值最短路)

题干: As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pair of…

抠图、换背景、正装图证件照制作方法

本篇灵感是最近又要使用别的底色的正装照的图片。上学的时候,要求证件照的底色是蓝底、党员档案里要求图片的底色是红底、 将来上班的证件照要求是白底,并且无论是考研还是找工作都是制作简历的时候,根据简历的样板不同需要更换不同的底色。 …

TFS的Web门户工作项(七)

在TFS的web门户中有更丰富和更全面的设置和数据展示。 Web门户如图有A,B,C,D四部分组成。A部分为团队项目和项目切换,登录人员和登录人员切换。B部分是Web门户主要功能的菜单,C部分是当前团队项的一些信息的展示&#…

详解多视角3D检测模型 BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection

本文介绍一个多视角的3D检测模型:BEVDepth,论文收录于 AAAI2023。在这篇文章中,作者提出了一种新的具有可信深度估计的三维物体检测器。本文提出的BEVDepth通过利用激光雷达显式深度监督来提高图像深度估计的可信度。作者引入了摄像机感知深度…

TFS版本管理(八)

目前TFS支持两种版本管理方式,一种是自带的TFS版本控制,一种是Git,后一种是分布式,并且分支功能相对强大,关于Git可以找更详细的资源学习。 如果没有创建项,在web门户中代码下的资源管理器是空的。 团队资…