1

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

我的 TFS 层次结构中的一条开发线、一条主线和一条发布线。我使用与以下链接中详述的方法相同的方法:

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

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

主线是最新版本的代码,当主线代码被测试和批准时,将创建一个新的发布文件夹来保存。

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

这个现有的开发分支目前正在由一名开发人员处理,可以说,更改将在 4 周内准备好。

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

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

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

我想我需要:

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

(2) 在 NEW dev 分支中进行更改

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

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

谢谢

4

2 回答 2

2

如果您从发布分支分支,则可以将这些更改合并回来,而不管任何其他分支。他们也可以合并他们的更改,但如果你们都在同一个文件上工作,他们可能必须经历合并冲突解决步骤。

当您将更改合并到 Mainline 中时,dev 分支可以将 Mainline 中的更改合并到他们的代码中。

另一种选择,如果您还不想签入对主线的更改...如果您使用的是最新版本的 Visual Studio 和 TFS,那么您可以使用搁置集在分支之间合并代码。但是,只有最新版本的 VS/TFS 才会在 Unshelving 上进行 Shelveset 合并。以前,它只是复制被搁置的文件的任何版本,而不是您可能所做的任何更改。

于 2014-06-28T23:02:46.697 回答
2

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

结构

在此处输入图像描述

主要的

包含主要源代码树。最新的开发版本。

测试

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

发展

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

生产

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

维护

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

安全的

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

阶段

在此处输入图像描述

流动

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

当来自 Development 分支的构建稳定并准备好进行测试时,团队将 Development 分支合并到 Test 分支。

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

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

如果发布将不再接受维护,则团队将分支从维护移至安全容器。

在您在维护容器下的分支上工作之前,请始终确保您标记它。

在此处输入图像描述

取自TFS 分支和合并

于 2014-06-28T23:14:48.813 回答