Version control 性能与特征分支

Version control 性能与特征分支,version-control,branch,perforce,Version Control,Branch,Perforce,在我们公司,我们使用Performance进行源代码控制和版本管理。目前,我们使用以下“树”实现功能分支 我们提前设置了分支机构。这并不重要。RC的分支是要素分支。目前,我们有超过50名开发人员、分析师和QA团队成员,他们正在单独或作为一个团队处理各种项目、缺陷修复等。当工作开始时,您会发现一个免费分支(我们单独跟踪),声明该分支(例如Working56),从RC强制合并/同步到该分支(为了确保这正是当时RC中的内容),在不断将任何更改从RC合并到您的工作分支(至少每天一次,可能根据需要更频繁)

在我们公司,我们使用Performance进行源代码控制和版本管理。目前,我们使用以下“树”实现功能分支

我们提前设置了分支机构。这并不重要。RC的分支是要素分支。目前,我们有超过50名开发人员、分析师和QA团队成员,他们正在单独或作为一个团队处理各种项目、缺陷修复等。当工作开始时,您会发现一个免费分支(我们单独跟踪),声明该分支(例如Working56),从RC强制合并/同步到该分支(为了确保这正是当时RC中的内容),在不断将任何更改从RC合并到您的工作分支(至少每天一次,可能根据需要更频繁)的同时,完成您的工作(代码、同行评审、QA),并在完成后将更改复制到RC

这是可行的,但这意味着我们(目前)有300个工作分支需要管理。我们希望以一种更合理的方式实现功能分支,我们将使用分支映射等创建一个根据需要命名的分支,然后一旦我们将其合并回RC,我们希望它不再永远出现在仓库中(至少,不是每个开发人员都这样)。基本上,我们只希望看到那些具有活跃开发的分支作为功能分支,隐藏我们已经完成的分支

最佳实践是什么?perforce是否可以使用分支或流来实现这一点?我们是否缺少一些分支规范来实现这一点?我们是否应该不担心,让数千或上万个功能分支堆积在RC下的仓库视图中?我们现在的做法是否是我们所能希望的最好方式r


我们已经使用Perforce 10年了,这仍然是一个每天困扰我们的问题。

任务流就是为此而设计的

创建任务流,在其中执行工作,合并/复制回父级,然后
卸载任务流

通用任务流获取:

  • 不要尝试重用或重新租用它们。每个任务一个流!如果您尝试重用任务流,它们的有益功能大多不起作用,但您仍然会受到所有限制
  • 卸载任务流后,修改的仓库文件将继续存在。请调整您的心智模型,以使用流列表作为流处于活动状态的真实源,而不是仓库树中的文件夹

  • 如果您能够处理这些问题,任务流将非常有用。

    不清楚多个开发人员在同一个功能分支上协作的频率,但您可能会调查Performance DVCS功能。如果开发人员在自己的DVCS repo中创建自己的分支,那么他们不会使用e分支是临时性的。在开发团队中,个人工作和团队工作混合得很好。我希望执行的任何工作单元都可能需要至少3个人(即使只是一个错误修复-开发人员、同行评审、QA)在它可以合并到任何父分支之前。除此之外,任何规模的许多项目都有多个开发人员协作。我对流的有限理解是,它们是在分支之上分层的(Perforce将它们描述为带大脑的分支)。创建流是否也会创建一个将在仓库中生存的分支,或者它是否会隐藏此分支,以便流完成后不会扰乱接口?我在文档中没有看到任何定义,不幸的是,我无法快速设置测试环境,并且我们当前的Performce server版本不支持rt streams。我不认为我可以在评论空间中完全解释所有关于streams的内容,但你所说的是我所说的“明白了”。获得streams的好处需要稍微调整您的工作流程,我通常建议如果您使用streams,不要使用界面的depot选项卡部分,因为它避开了streams提供的depot简化视图。
      Hotfix01 - Hotfix branch
      Hotfix02 - Hotfix branch
      HotfixNN - Hotfix branch
    Main (continuous trunk)      
      RC - Release Candidate branch (next release)
        Working01 - Working branch, feature branch.
        Working02 - Working branch, feature branch.
        Working03 - Working branch, feature branch.
        WorkingNN - Working branch, feature branch.