如何在TFS 2012中锁定迭代

本文关键字:锁定 迭代 2012 TFS | 更新日期: 2023-09-27 18:13:12

一旦迭代(Sprint)结束,我们需要锁定它,以便没有人能够再签入该迭代(当然,除非他们覆盖签入警告)。

我怎样才能做到这一点?我查看了TeamFoundation Server SDK命名空间(Microsoft.TeamFoundation),但到目前为止没有发现任何内容。

如何在TFS 2012中锁定迭代

一个迭代(Sprint)通常被用作工作项中的迭代路径。但是从你的问题的上下文来看,我建议你在源代码控制中为每个迭代创建一个文件夹,对吗?

    右键单击文件夹,选择"高级->安全…"
  • WebAccess打开
  • 删除所有组的"Check Out"answers"Check In"

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

这是一个高层次的想法…

创建一个全局列表,用来指示一个项目和它的"当前迭代"。(TFS没有"当前迭代"的概念,所以你必须把它存储在某个地方。)在每次迭代之后,您都必须更新此列表以删除旧迭代并添加新迭代。

然后创建自定义签入策略,该策略需要为签入提供工作项关联。

如果它确实有一个工作项关联,那么您检查所有的工作项(您可以关联多个),以确保迭代与存储在全局列表中的"Current iteration"匹配。

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

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

https://tfspluginsuite.codeplex.com/

这是我保留的解决方案:

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

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

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

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