我们开发的产品由跨产品(项目1、项目2...)共享的核心运行时和项目/产品特定部分组成。对于每个“产品”,我们维护多个分支,因为不同的版本被推广到现场并需要维护,有时甚至需要向后移植。
我们还使用 JIRA 作为问题跟踪系统,但我无法找到对我们的产品类型/分支进行建模的正确方法。与此上下文相关的 JIRA 元素是组件和版本:
- 我们使用组件来区分 CORE、PRO1、PRO2 等
- 我们还使用组件来识别所涉及的分支
- 我们使用修复版本来跟踪解决问题的迭代(迭代开发、每两周迭代)
这或多或少是有效的,但使用分支的组件类型是一种黑客行为,并且有一个缺点,即您不能“退休”组件,只能删除它们。我们选择这种方式是因为如果我们将迭代与“修复版本”字段中的分支混合在一起,我们将无法再查询“迭代 X 和分支 Y”(JIRA 不支持 AND 查询)。
在 JIRA 中维护分支和跟踪迭代有哪些最佳实践?
一些上下文统计数据:我们正在讨论大约 4 种产品类型,每种产品类型需要维护 3 个主要分支。
最佳答案
我会采取稍微不同的方法来解决这个问题。我将为您的核心运行时和每个项目/产品特定部分设置组件,但不要使这些组件特定于分支。因此,您的 Jira 项目中可能有以下组件:
- 核心
- 产品X
- 产品Y
- 产品Z
然后,我会按版本区分不同的分支。我假设您有某种类型的版本编号系统,可以让您将现场的二进制文件与特定的分支和版本联系起来。在 Jira 中为每个版本/分支设置一个版本。当您向 Jira 报告问题时,您可以选择一个或多个受影响的版本。
该系统有几个优点:
- 如果问题涉及多个版本/分支,您可以识别该问题中所有受影响的版本。
- 您可以将修复版本设置为一个或多个版本。有时,您可能只能修复主干或某个分支中的问题。也许这是一个主要问题,您必须跨分支移植修复程序。该系统使您可以灵活地查看所有这些并进行报告。
关于versioning - 如何使用JIRA有效管理分支机构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/897907/