【问题标题】:How to lock iterations in TFS 2012?如何在 TFS 2012 中锁定迭代?
【发布时间】:2013-05-10 13:34:18
【问题描述】:

一旦迭代(Sprint)结束,我们就需要锁定它,这样任何人都无法再签入该迭代(当然,除非他们覆盖签入警告)。

我怎样才能做到这一点?我查看了 Team Foundation Server SDK 命名空间 (Microsoft.TeamFoundation),但到目前为止一无所获。

【问题讨论】:

    标签: c# tfs scrum


    【解决方案1】:

    一个交互(Sprint)通常用作工作项中的迭代路径。但是从您的问题的上下文来看,我建议您在每次迭代的源代码管理中都有一个文件夹,对吧?

    • 右键点击文件夹,“高级->安全...”
    • WebAccess 打开
    • 删除所有组的“签出”和“签入”

    现在您的任何开发人员都不允许签入该文件夹和子文件夹中的任何内容。

    【讨论】:

    • 我们在源代码控制中没有每个 Sprint/迭代的文件夹。我认为大多数人只将这些用于工作项管理。
    • 所以您想禁止用户在变更集中关联旧迭代的工作项?因为您不签入迭代,所以您签入文件夹或将签入与具有迭代路径的工作项相关联。
    • “所以你想禁止用户在变更集中关联旧迭代的工作项?”确切地。这是迄今为止我找到的最佳解决方案:intellitect.com/…
    • 我不确定这是否可以禁止它。但是您可以做的是强制开发人员将工作项与实际迭代相关联。您可以通过使用“工作项查询策略”(TFSPowerTools 的一部分)来实现这一点。您可以定义一个查询,开发人员只能将该查询的结果与变更集相关联。您必须使有关迭代的查询保持最新,但它可以工作。
    • 在我链接的文章中,作者实际上解释了如何使用工作项查询策略,而不必在每次当前迭代更改时保持查询最新。
    【解决方案2】:

    这是一个高层次的想法......

    创建一个全局列表,用于指示项目及其“当前迭代”。 (TFS 没有“当前迭代”的概念,因此您必须将其存储在某个地方。)每次迭代后,您必须更新此列表以删除旧迭代并添加新迭代。

    然后您创建一个自定义签入策略,该策略需要一个工作项关联来进行签入。

    如果确实有工作项关联,那么您检查所有这些(您可以关联多个)以确保迭代与存储在全局列表中的“当前迭代”相匹配。

    根据我对 TFS 客户端 API 的理解,所有这些数据点都应该可用。 (唯一我不能 100% 确定的是在签到政策中获取相关的工作项。但如果它不存在,我会非常惊讶。)

    【讨论】:

      【解决方案3】:

      您还可以考虑使用 TFS 插件套件中的工作项关联策略。

      https://tfspluginsuite.codeplex.com/

      【讨论】:

        【解决方案4】:

        这是我保留的解决方案:

        http://intellitect.com/transitioning-between-sprintsiterations-with-tfs/

        简而言之,您使用迭代路径来确定当前的 sprint。

        然后您创建一个查询,该查询返回当前迭代下的所有工作项(标识您当前的 sprint)。

        您使用工作项查询策略来确保与签入相关的所有工作项都是查询结果的一部分(因此也是当前迭代/冲刺的一部分)。

        【讨论】:

          猜你喜欢
          • 2013-07-24
          • 2013-12-20
          • 1970-01-01
          • 2014-05-20
          • 1970-01-01
          • 2013-12-28
          • 2021-02-22
          • 2016-05-10
          • 2015-02-21
          相关资源
          最近更新 更多