一旦迭代(Sprint)结束,我们就需要锁定它,以便没有人能够再签入该迭代(当然,除非他们覆盖签入警告)。
我怎样才能做到这一点?我查看了 Team Foundation Server SDK 命名空间 (Microsoft.TeamFoundation),但到目前为止一无所获。
交互(Sprint)通常用作工作项中的迭代路径。但是从您的问题的上下文来看,我建议您在每次迭代的源代码控制中都有一个文件夹,对吗?
现在,您的任何开发人员都不允许签入该文件夹和子文件夹中的任何内容。
这是一个高层次的想法...
创建一个全局列表,用于指示项目及其“当前迭代”。(TFS 没有“当前迭代”的概念,因此您必须将其存储在某个地方。)每次迭代后,您必须更新此列表以删除旧迭代并添加新迭代。
然后,您创建一个自定义签入策略,该策略需要一个工作项关联来进行签入。
如果它确实具有工作项关联,那么您检查所有这些(您可以关联多个)以确保迭代与存储在全局列表中的“当前迭代”相匹配。
根据我对 TFS 客户端 API 的理解,所有这些数据点都应该可用。(我不能 100% 确定的唯一一个是在签入政策中获取相关的工作项。但如果它不存在,我会感到非常惊讶。)
您还可以考虑使用 TFS 插件套件中的工作项关联策略。
这是我保留的解决方案:
http://intellitect.com/transitioning-between-sprintsiterations-with-tfs/
简而言之,您使用迭代路径来确定当前的 sprint。
然后,您创建一个查询,返回当前迭代下的所有工作项(标识您当前的 sprint)。
您使用工作项查询策略来确保与签入相关的所有工作项都是查询结果的一部分(因此是当前迭代/冲刺的一部分)。