我一直负责想出了分支,合并和释放在未来6个月的策略。
并发症来自于事实,我们将运行多个项目都具有不同的代码更改和不同的发布日期,但大致相同的发展开始日期。
目前,我们正在使用VSS进行代码管理,但都知道,它可能会导致一些问题和之前新的发展开始将迁移到TFS。
什么策略,我应该使用什么东西,我应该制定一个计划分解之前考虑?
很抱歉,如果这是含糊不清,随时问的问题,如果需要,我会用更多的信息更新。
我一直负责想出了分支,合并和释放在未来6个月的策略。
并发症来自于事实,我们将运行多个项目都具有不同的代码更改和不同的发布日期,但大致相同的发展开始日期。
目前,我们正在使用VSS进行代码管理,但都知道,它可能会导致一些问题和之前新的发展开始将迁移到TFS。
什么策略,我应该使用什么东西,我应该制定一个计划分解之前考虑?
很抱歉,如果这是含糊不清,随时问的问题,如果需要,我会用更多的信息更新。
这是最好的一个源控制模式 ,我所遇到的。 它强调自由留下任何垃圾(在树干上没有垃圾)的躯干的重要性。 发展应该在开发分支进行,并定期合并(代码已通过测试之后)应回主干(图一),但该模型也允许源被正在开发(图二),同时仍然修补。 我绝对推荐阅读全部的帖子,完全理解。
Pic 1
Pic 2
编辑:图像不带的话肯定是混乱的。 我可以解释,但我会基本上被复制原始作者。 话虽如此,我也许应该选择一个更好的画面来描述的合并过程,所以希望这有助于。 我还是建议你阅读的帖子,但是:
我见过分支工作的最简单和最常用的方式是关闭的两个前提。 躯干和释放。 我想,这就是所谓的“不稳定树干,稳定分支”的理念。
主干是你的主要来源。 这包含了“最新和最伟大的”代码和具有前瞻性。 它通常并不总是稳定。
发布是一个一对多的关联树干。 有一个行李箱,但是从树干派生出许多版本。 发布一般先从躯干一旦特定功能的里程碑已经创下了分公司,使“唯一”的东西向左走在一个特定的部署应该只是bug修复。 然后,分支树干,给它一个标签(例如1.6版本是我们目前的最新版本),建立和发送的释放QA。 我们还推动了主干的版本号(通常是次设备号)在这一点上,以确保不会有两个版本使用相同的号码。
然后,你开始你的发布分支的测试周期。 当足够的测试已经perfomed应用bug修复发布分支,合并这些回主干(保证bug修复被发扬光大!),然后重新发布分支的版本。 这个周期与QA继续,直到你既高兴又释放,最终提供给客户(或多个)。 从客户(S)是准确的任何错误报告(即它们是一个错误!)与有问题的分支开始另一个循环QA。
当你创造未来的版本中它是一个好主意,也尝试着旧的用户过渡到新的分支机构,以减少分支的潜在数量可能必须回修补bug修复之中。
使用这种技术,你可以用你的技术的各种需要不同级别的服务客户部署解决方案(以最少的开始),您可以从树干“危险”的新代码的和最差的合并方案隔离现有的部署是一个科。
我的第一个建议是阅读埃里克库的源控制HOWTO -特别是树枝和分支合并章节。
我们有3个集装箱 - DEV,MAIN和释放我们的工作。 主要包含了我们所有的“准备释放”的代码,我们倾向于认为它是“基本稳定”。 DEV /迭代(或DEV /功能,或DEV / RiskyFeatureThatMightBreakSomeoneElse)从主要分支和合并起来的时候迭代/功能愿推动了过去的开发环境。 我们也有TFS构建从DEV /迭代分支和主分支成立。
我们放容器中含有一个编号发布(类似于许多Subversion版本库使用的“标签”容器)。 我们只是每次取一个分支从主 - 我喜欢说我们是“切割”发布分支来表示这应该不会有大量的活动,一旦合并完成回事。
至于与VSS> TFS -微软支持的升级路径,这应该让你的版本历史记录,但如果你不需要它的历史,我只想从VSS获取最新版本,签入TFS和存档的VSS库。
最后一个提示 - 让你的团队成员熟悉的源代码控制。 他们必须理解分支与合并 ,否则你会被卡住做了很多清理工作的:)。
祝好运!
颠覆本书描述了一些常见的分支模式 。 也许你也可以运用这些TFS。