Eclipse 小组支持定义这样的 API,该 API 允许插件集成版本控制和配置管理存储库的功能。存储库提供的功能会从根本上影响用户工作流程,这是因为还有其它步骤用于检索文件、将其内容与本地内容进行比较、对其进行版本控制以及将更新后的文件返回至存储库。小组插件 API 的目标是尽量被动以允许存储库插件提供程序定义它们自己的工作流程,以便熟悉产品的用户可以按相似的方式使用该平台并提供对工作流程的支持,我们发现这些工作流程对小组插件非常有用。
此目标是通过提供若干构建块实现的:
存储库提供程序允许工作空间资源与远程位置同步。至少它允许将工作空间中的资源推送至远程位置以及将资源从远程位置拉回到工作空间中。通过有选择地提供 IFileModificationValidator 和 IMoveDeleteHook,存储库提供程序将与项目进行关联并控制该项目中的资源。每个项目只有一个相关联的存储库提供程序。用户通过提供 IConfigurationWizard 将存储库提供程序与项目进行关联。存储库提供程序还可通过小组项目集合功能部件参与项目在工作空间中的导出和导入。为支持这一功能,存储库提供程序应实现 ProjectSetCapability。
允许其它插件根据小组操作指示资源的特殊处理。存储库提供程序可使资源成为小组私有的,这样其它插件基本上就看不到该资源了。这是通过 IResource#setTeamPrivateMember 方法实现的,通常用于对用户隐藏特定于存储库提供程序的元文件。而且,构建器通常会将构建输出标记为派生项,这将提示存储库提供程序该资源处于瞬态,可能会被存储库提供程序忽略。提供程序可通过 IResource#isDerived 方法在资源上检查此标志。
此外,其它插件可通过 org.eclipse.team.core.fileTypes 扩展向存储库提供程序提供有关文件类型信息的提示并通过 org.eclipse.team.core.ignore 扩展向存储库提供程序提供有关应被存储库忽略的公共文件的提示。
同步支持提供类和接口来管理同步信息(SyncInfo 和 SyncInfoSet)的动态集合。此支持帮助您管理有关工作空间中资源的变体的信息。例如,可借助 FTP 存储最新远程文件的时间戳记和当前装入的资源的库。同步支持提供 API 以帮助管理和保留资源变体并向用户显示同步状态。
用户界面支持也被构造为是被动的。小组提供程序操作、首选项和属性的占位符由小组用户界面插件定义,但要由小组插件提供程序来定义这些用户界面元素。小组用户界面插件还包括一个简单的可扩展配置向导,它使用户可将项目与存储库关联。插件可为此向导提供内容,该向导让用户指定特定于存储库的信息。
多个存储库提供程序可以在平台中和平共处。实际上,对同一已安装的存储库甚至可能有不同的客户机实现。例如,一个可以安装为专家设计的 CVS 客户机,另一个存储库安装为新用户设计的 CVS 客户机。