1

我是使用 git 和 Azure DevOps 来管理我们工作的开发团队的一员。

我们在 Azure DevOps 中的工作项通过添加链接的方式显示更新,远远超出了我们将相关代码合并到我们的发布分支的点。我不知道我们的工作项或过渡配置是否存在问题,或者我们的开发过程是否存在问题,或者两者都有。

症状:

  1. 当我们将工作中的开发分支的代码合并到发布分支(两个长期存在的 git 分支都使用策略管理)时,我们会看到数十或数百个过去的工作项可以追溯到几个月前,并且很久以前就已完成,与合并 PR 相关联。也许这与这个问题有关?
  2. 在大多数已关闭的工作项目上,我们看到以添加链接的形式持续更新,这些更新针对不同类型的看似不相关的活动或某个长期存在的分支上的活动。

最终结果是僵尸工作项使长期分支之间的合并变得混乱。

我们想要实现的是合并到我们的发布分支,其中 PR 仅包含与该发布中的新代码相关的工作项。并且一旦部署了一个工作,相关的工作项就不再更新。

我们的代码流程如下所示:

  • 开发人员在本地分支工作并提交 PR 以将他们的工作提交到我们的共享开发分支。
  • 在代码审查和批准后,PR 被压缩到共享开发分支中。
  • 在代码冻结时,我们使用合并(非快进)策略将共享开发分支合并到发布分支。
  • QA 团队对发布候选者进行认证。错误被修复并通过 squash 提交直接合并到发布分支中。
  • 部署后,对发布分支的更改将合并回使用合并(非快进)策略的共享开发。

我们可以进行任何更改来清理我们的工作项管理吗?

更新:

我们将工作项关联到拉取请求(由分支策略强制执行),从不明确关联到分支。当 PR 被批准时,工作项与提交和 PR 相关联: 在此处输入图像描述

重申一下这个问题,除非我们以某种方式手动干预,否则 Azure Devops 现在会在每次我们在长期存在的分支之间合并代码时创建一个新的提交链接和 PR 链接。

在下面的示例中,展示了提交链接(PR 链接也看起来像这样),用户故事在 7 月 9 日被批准并提交给开发分支,并在当天晚些时候完成了合并到发布。理想情况下,这将是最后一个链接,但相反,我们会看到为两个长期存在的分支之间的每个后续合并创建一个链接。

在此处输入图像描述

如果您只关注 7 月 16 日从发布到开发的合并,这就是为什么我怀疑确定差异的方式有问题。这个工作项已经在开发中,所以两个分支不同的唯一方式就是查看历史记录。如果我理解正确的话,这就是 Azure Devops 的工作方式,但这也是许多组织的痛苦之源。

4

1 回答 1

2

我认为您的 Pull Request 流程没有问题。

更新:

根据你的描述,我做了进一步的测试,得到了和你一样的结果。

在此处输入图像描述

当工作项连接到拉取请求时,它会在完成后连接到 PR 和 PR 相关的提交。

在这种情况下,当你创建一个新的拉取请求(PR -> commits包含之前合并的 PR 提交)时,它会自动连接所有相关的工作项(无论工作项的状态如何)。这可能是默认的方式在职的

在此处输入图像描述

如您所说,这是由分支之间的差异引起的。但更重要的是,即使工作项状态为关闭,它仍然可以连接和更新。

恐怕目前无法完全关闭工作项。它只支持使用规则(如Title、assign to)将少数字段设为只读。

您可以在我们的UserVoice 网站上添加您对该功能的请求,这是我们产品建议的主要论坛。

于 2020-12-14T08:34:46.543 回答