Welcome

首页 / 软件开发 / .NET编程技术 / Team System: 签入说明和策略

Team System: 签入说明和策略2011-11-06 msdn Brian A. Randell在本专栏 2007 年 1 月刊中,我开始讨论使用 Microsoft® Word 2003 加载项提供的 Team Foundation Server (TFS) 版本控制 API。一年多之后,我又在这里为大家奉上第五部分,同时也是最后 一部分有关版本控制 API 和 Word 加载项的专项讨论(我确实没想到会有这么多部分)。

您也许还记得在以前的专栏里我们曾提到加载项目前支持签入、签出、撤消挂起的更改,并能够将工 作项与签入相关联。在我最新的专栏中,我详细分析了签入说明和签入策略。本月,我将为您介绍如何将 签入说明和签入策略支持添加到 Word 加载项。另外,您还将了解到如何处理签入冲突。如果您尚未阅读 本系列的其他部分(列在侧栏“本系列前四部分”中),请确保先阅读其中的内容。

签入说明

签入说明是可以与签入关联的自由格式的文本字段。可以将签入说明标记为强制使用, 并控制其在 Visual Studio® 签入对话框中出现的顺序。为了在 Word 加载项中模拟此行为,必须获 得用于活动团队项目的签入说明列表、对此列表进行排序并显示每个签入说明的标签和文本框。

VersionControlServer 对象公开 GetCheckinNoteDefinitions 方法,该方法接受团队项目名称 数组并返回 CheckinNoteFieldDefinition 对象数组。每个 CheckinNoteFieldDefinition 实例都会公开 签入说明的名称、显示顺序、是否必需以及服务器项字符串属性。GetCheckinNoteDefinitions 将以近似 随机顺序返回项目列表。在测试中,我发现无论以何种顺序将团队项目引用传递到方法中,返回说明时都 会按照签入说明名称排序并按团队项目名称分组。因此,假设使用默认说明组定义了两个团队项目,一个 叫 MSF-Agile,另一个叫 MSF-CMMI,结果如图 1 所示。如果创建称为 Build Master 的签入说明并将其 添加到 MSF-CMMI 团队项目中,它将出现在列表的第一个位置。

Figure 1 调用 GetCheckinNoteDefinitions 的结果

签入说明名称团队项目
代码审阅者MSF- Agile
代码审阅者MSF-CMMI
性能审阅者MSF- Agile
性能审阅者MSF-CMMI
安全性审阅者MSF-Agile
安全性审阅者MSF-CMMI
为 Word 加载项创建的 tfsVCUtil 类提供两种新的共享方法,您可以用它们来检索签入说明: GetAllCheckInNotesByTeamProjectName 和 GetAllCheckInNotesByItemLocalPath。可以使用其中任何一 种方法获得未修改的团队项目 CheckinNoteFieldDefinitions 列表(如果有)。

支持签入对话框 的签入说明需要在现有工作项按钮下方另行添加切换按钮、并添加作为容器的面板,还要为每个签入说明 添加标签和文本框。(代码下载提供了一种简单的实现示例。)但是,为签入对话框添加签入说明支持只 解决了部分难题。您还需要通过添加代码来强制使用必需的说明。签入策略和冲突检测要求为 tfsVCUtil 类中签入对话框和支持代码的工作方式进行一些更改。