O suporte da Equipe Eclipse define API que permite que os plug-ins integrem a função de um repositório de gerenciamento de versão e configuração. A função fornecida por um repositório fundamentalmente afeta o workflow do usuário, desde que existam etapas adicionais para recuperar arquivos, comparando seu conteúdo com o conteúdo local, alterando suas versões e retornando arquivos atualizados para o repositório. o objetivo da API do plug-in de equipe é ser passiva o bastante para permitir que os fornecedores de plug-in do repositório definam seu próprio workflow para que os usuários familiarizados com seu produto possam utilizar a plataforma de uma forma semelhante e forneçam suporte para workflows que foram localizados são úteis para os plug-ins da equipe.
Este objetivo é alcançado fornecendo vários blocos de construção:
Um provedor de repositório permite a sincronização de recursos do espaço de trabalho com um local remoto. No mínimo, permite enviar recursos no espaço de trabalho para um local remoto e receber recursos de um local remoto para o espaço de trabalho. Um provedor de repositório está associado a um projeto e controla os recursos no projeto, opcionalmente fornecendo um IFileModificationValidator e IMoveDeleteHook. Há apenas um provedor de repositório associado a cada projeto. Um usuário associa um provedor de repositório a um projeto fornecendo um IConfigurationWizard. Os provedores de repositório também podem participar da exportação e importação de projetos para o espaço de trabalho via o recurso do conjunto do projeto da equipe. Para suportar isso, um provedor de repositório deve implementar um ProjectSetCapability.
Permite que outros plug-ins infiquem uma manipulação especial dos recursos a respeito das operações da equipe. O provedor do repositório pode marcar recursos como particulares da equipe que essencialmente oculta o recurso de outros plug-ins. Isso é feito por meio do método IResource#setTeamPrivateMember e é normalmente feito para ocultar do usuário os metarquivos específicos do provedor do repositório. Além disso, os construtores marcar~~ao a saída da construção como derivada, que é uma sugestão para um fornecedor do repositório de que o recurso é provisório e pode ser ignorado pelo fornecedor do repositório. Um fornecedor pode verificar esse sinalizador pelo método IResource#isDerived.
Além disso, outros plug-ins podem incluir sugestões para o provedor do repositório sobre as informações do tipo de arquivo pela extensão org.eclipse.team.core.fileTypes e sobre os arquivos comuns que devem ser ignorados pelo repositório através da extensão org.eclipse.team.core.ignore.
O suporte de sincronização fornece classes e interfaces para gerenciar coletas dinâmicas de informações de sincronização (SyncInfo, SyncInfoSet). Este suporte ajuda a gerenciar informações sobre as variantes dos recursos no espaço de trabalho. Por exemplo, como o FTP você pode armazenar timestamps para o arquivo remoto mais recente e a base para o recurso carregado atualmente. O suporte de sincronização fornece APIs para ajudar a gerenciar e manter variantes do recurso e exibir o estado de sincronização para o usuário.
O suporte à UI também é estruturado passivamente. Os marcadores de ações, preferências e propriedades do fornecedor de equipe são definidos pelo plug-in da UI da equipe, mas está a cargo do fornecedor de plug-in da equipe definir esses elementos da UI. O plug-in da UI da equipe também inclui um assistente de configuração simples e extensível que permite que os usuários associem projetos aos repositórios. Os plug-ins podem fornecer conteúdo para este assistente que permite que o usuário especifique informações específicas do repositório.
Vários fornecedores de repositório podem coexistir sem problemas na plataforma. Realmente, é até possível ter implementações diferentes de clientes no mesmo repositório instalado. Por exemplo, um poderia instalar um cliente CVS projetado para especialistas e um diferente para principiantes.