Eclipse チーム・サポートは、バージョン管理および構成管理リポジトリーの機能のプラグインによる統合を可能にする API を定義します。 リポジトリーによって提供される機能は、基本的にユーザーのワークフローに影響を及ぼします。 ファイルの検索、検索したファイルの内容とローカルの内容の比較、およびファイルのバージョン管理を行い、 更新したファイルをリポジトリーに戻す追加ステップがあるためです。 チーム・プラグイン API のゴールは、非活性であることです。その結果、リポジトリー・プラグイン・プロバイダーは独自のワークフローを定義し、 そのプロバイダーの製品を使い慣れたユーザーが同様の方法でプラットフォームを使用できるようになり、 またチーム・プラグインにとって有用なワークフローをサポートできます。
このゴールは、複数のビルディング・ブロックを供給することによって達成されます。
リポジトリー・プロバイダーにより、ワークスペース・リソースとリモート・ロケーションの同期が可能になります。 少なくとも、ワークスペースのリソースをリモート・ロケーションにプッシュし、 リモート・ロケーションからワークスペースにリソースをプルすることができます。 リポジトリー・プロバイダーはプロジェクトに関連付けられ、IFileModificationValidator および IMoveDeleteHook をオプションで提供することによって、 プロジェクトのリソースを制御します。 各プロジェクトに関連付けられたリポジトリー・プロバイダーは 1 つだけです。 ユーザーは、IConfigurationWizard を提供することによって、 リポジトリー・プロバイダーをプロジェクトに関連付けます。 リポジトリー・プロバイダーは、チーム・プロジェクト設定機能を通じて、ワークスペースへのプロジェクトのエクスポートおよびインポートに参加できます。 これをサポートするには、リポジトリー・プロバイダーで ProjectSetCapability が実装されている必要があります。
チーム操作に関するリソースの特殊な処理を他のプラグインが指示できるようになります。 リポジトリー・プロバイダーは、リソースをチーム専用とマークし、リソースを原則として他のプラグインから隠すことができます。 これは IResource#setTeamPrivateMember メソッドを使用して行い、通常はリポジトリー・プロバイダー固有のメタファイルをユーザーから隠すために行います。 また、ビルダーは多くの場合、ビルド出力を「派生」とマークします。 このマークは、リポジトリー・プロバイダーに対して、リソースが一過性であり、リポジトリー・プロバイダーはそれを無視できることを示すヒントになります。 プロバイダーは、IResource#isDerived メソッドを通して、 リソースのこのフラグを確認できます。
また、他のプラグインは、org.eclipse.team.core.fileTypes 拡張を使用してファイル・タイプ情報に関するヒント、および org.eclipse.team.core.ignore 拡張を使用してリポジトリーが無視すべき共通ファイルに関するヒントを、リポジトリー・プロバイダーに提供できます。
同期サポートは、同期情報 (SyncInfo、SyncInfoSet) の動的コレクションを管理するためのクラスおよびインターフェースを提供します。 このサポートは、ワークスペース内のリソースのバリアントに関する情報の管理に役立ちます。 例えば、FTP では、最新のリモート・ファイルのタイム・スタンプと現在ロードされているリソースのベースを保管できます。 同期サポートには、リソース・バリアントの管理および持続化を支援し、ユーザーに同期状態を表示する API があります。
UI サポートも受動的に構成されます。 チーム・プロバイダー・アクション、設定、およびプロパティーのプレースホルダーはチーム UI プラグインによって定義されますが、 これらの UI エレメントの定義はチーム・プラグイン・プロバイダーの責任です。 チーム UI プラグインには、ユーザーがプロジェクトをリポジトリーに関連付けることを可能にする、単純で拡張可能な構成ウィザードも組み込まれています。 プラグインは、ユーザーがリポジトリーに固有の情報を指定することを可能にするこのウィザードのコンテンツを提供できます。
複数のリポジトリー・プロバイダーがプラットフォーム内で問題なく共存できます。 実際、同じリポジトリー用のさまざまなクライアント実装をインストールすることさえも可能です。 例えば、専門家用に設計された CVS クライアントと、初心者用に設計された別の CVS クライアントをインストールすることができます。