TFS分支 - 2个开发分支机构

时间:2014-06-28 22:30:44

标签: c# visual-studio tfs branching-and-merging source-control-explorer

我目前使用TFS并具有以下结构。

我的TFS层次结构中的Dev行,Mainline和Release行。我使用与以下链接中详述的相同方法:

http://blog.tfsserver.com/a-straightforward-guide-to-branching/

(我计划在发布行中保留2或3个最新版本)

主线是最新版本的代码,将创建一个新版本文件夹,以便在主线代码经过测试和批准时保留。

目前在我的开发行中,我有一个从主线创建的开发分支。

这个现有的开发分支目前正由一位开发人员开展工作,可以在4周内完成更改。

我目前需要对生产中的当前版本代码进行紧急更改(主线),我知道这些更改将花费我2周的时间来完成和测试。

考虑到这一点,我显然不想使用现有的dev分支。

我无法直接在主线上进行更改,所以我想知道以下方法我是否考虑采用正确的方法?

我想我需要:

(1)从主线创建一个新的Dev分支。     然后,我将拥有我的原始/现有开发分支,现在是一个新的开发分支。     两者都将从相同的原始代码中分支出来。

(2)在新开发分支中进行更改

(3)一旦我对我的更改感到满意,我就会将我的更改与Mainline合并,并将更改发布到生产(或选定的客户),并将我的更改与原始Dev分支合并。     然后,当我的原始dev分支更改在我的2周后完成时,它将与主线合并。

我想知道这是正确的做法吗? 即使我没有从现有/原始dev分支创建新分支,我是否可以将更改从NEW分支合并到现有dev分支?

由于

2 个答案:

答案 0 :(得分:2)

如果从发布分支分支,则可以将这些更改合并,而不管其他任何分支。他们也可以合并他们的更改,但如果您同时处理同一个文件,他们可能必须通过合并冲突解决步骤。

当您将更改合并到主线时,开发分支可以将更改从Mainline合并到其代码中。

另一种选择,如果您还不想检查主线的更改...如果您使用的是最新版本的Visual Studio和TFS,那么您可以使用shelvesets在分支之间合并代码。但是,只有最新版本的VS / TFS会在Unshelving上合并Shelveset。以前,它只是复制了文件的任何版本,而不是您可能做出的任何更改。

答案 1 :(得分:2)

您可能需要查看以下方法。

结构

enter image description here

主要

包含主要源树。最近的开发版本。

测试

从Main分支并用于隔离测试。

开发

从Main分支并用于隔离活跃的开发。

生产

从Main分支并包含您在发布之前当前锁定的候选版本。您在此分支中工作以准备发布软件,而其他人则继续在开发分支中处理新功能。

维护

此文件夹包含您已经发货但现在需要为客户维护的分支机构。您可以使用它来执行维护工作。只要您发布软件,就可以创建Maintenance *文件夹并将生产分支移动到其中。使用标签标记您可能希望返回的维护前构建。

安全

此文件夹包含您不再维护的分支。当发布不再符合更新条件时,您可以将其从维护容器移动到安全容器中。

阶段

enter image description here

流量

每个功能都在不同的分支中完成。当团队准备好整合他们的工作时,他们将他们的分支合并到开发分支。

当开发分支的构建稳定并准备测试时,团队将开发分支合并到测试分支。

当QA接受构建时,团队将Test分支合并到Main分支,并从Main分支创建Production分支,让外部试用用户使用它。

一旦它是最终的,团队将生产分支移动到维护容器下,并且在该分支下将完成与该版本相关的任何进一步维护。

如果版本不再接受维护,团队会将分支从维护容器移动到安全容器。

在维护容器始终下的分支机构上 工作确保您 LABEL

enter image description here

取自TFS Branching & Merging