自动化 TFS 签入和合并的流程和文档

Automating processes and documentation for TFS checkins and merges

我最近接手了一项任务,在我们的开发管道中简化和自动化流程,我正在寻找 suggestions/advice 其他人解决类似问题的方法。

我们目前使用 TFS 2019/Azure Devops 和分支策略:

Master
└ Major Version 1 QA
└ Major Version 1 Release
└ Major Version 2 QA
└ Major Version 2 Release

我们使用 TFS 中的工作项,link 它们将集合更改为上面的分支。 通常,所有工作都在 Master 中完成,并有选择地在一个或两个版本中一个一个地合并到 QA。

一旦 tested/verified,这些更改通常会整体合并到发布版,在那里它们会在进入 public.

之前接受另一轮测试

这些合并并不总是成群结队的,有时它们是一个接一个地完成的,有时一个更改会从“主要”>“质量检查”>“发布”中一次合并(一次检查三次...)。

此外,我们有一个单独的错误跟踪系统,用于从 CSR 收集错误报告,并且该系统向外部成员(没有 TFS 访问权限的人)提供状态。此设置需要人工将数据从 TFS 复制到外部系统(反之亦然),这是我试图解决的主要低效率问题。

目前 TFS 工作项包含所有注释并提供与特定代码更改的关系。我想将所有内容都移到 TFS 中并放弃存在以下挑战和问题的外部系统:

  1. 如何向外部非开发人员提供工作项数据的可搜索、只读视图?此外,TFS 是否具有简单的 "report a bug" 类角色?我觉得这样的东西应该已经存在了,但似乎我需要创建或识别与 TFS 集成的东西。
  2. 当大量合并更改时,单个工作项与代码更改的关联将丢失。看来这是对 TFS 的长期抱怨,我认为我需要单独编写合并脚本以实现自动化。还有其他方法吗?
  3. 考虑到上面的分支策略,对文件的任何更改都需要至少 3 次签入才能进入世界。这是一个好策略吗?其背后的想法是,可以在 Release 分支冻结的同时继续添加工作。

附加信息:

我们是一个由 5 名开发人员和 5 名 QA 组成的小团队,20:1 围绕我们的产品构建了更大的外部基础架构,这就是我希望实现自动化的原因。

感谢您的advice/suggestions!

1.It 不推荐在 TFS 中使用。

TFS is not intended to be a public bug tracker. On-prem TFS uses Windows AD for authentication. Azure DevOps Service(cloud) uses Microsoft accounts or Organizational accounts (backed by Azure AD).

Beyond that, there is no concept of restricting certain work items to certain users -- any user who has access to edit work items in a given area can edit all work items in that area.

Source Link:

如果您坚持要这样做,更好的方法是借助某些第 3 方工具来完成此操作。你可以看看 Ewald Hofman 我们的 PG 在这个问题中的回答:Handling bugs raised by customers in TFS


2.You 是正确的。在 TFS 中,当您合并分支时,生成的变更集 linked 到所有合并的变更集。 TFS = 不提供合并对话框中 select 关联工作项的选项,我们应该在单击 Check in 按钮之前手动添加 Pending Changes window 中的工作项以在合并分支上执行签入。

您可能需要自定义脚本来实现它。此外,您还可以使用或参考一些第三方 tool/extension,例如这个-- TFS merge work items plugin


3.We 无法判断这是好还是坏的策略。如果完全符合您要查找的内容,那就太好了。如果您担心签入时间和变更集数量。首先,当您将更改合并到 Release 时。通常有多个变更集。如果文件只有很少的更改,则不需要执行此操作。换句话说,您不必经常签到。您还可以选择带有搁置集的待处理工作,而不需要在每次更新时都签入。

此外,更多选择,请参考官方link: