Poiché le risorse di un progetto sottoposto al controllo delle versioni vengono conservate all'interno del repository, è possibile condividere progetti con membri di team tramite la condivisione di un riferimento alle informazioni specifiche del repository necessarie per ricostruire un progetto nello spazio di lavoro. Tale operazione viene eseguita utilizzando uno speciale tipo di esportazione di file per gli insiemi di progetti di team.
Nella versione 3.0, un'API è stata aggiunta a ProjectSetCapability per consentire ai fornitori di repository di dichiarare una classe che implementi il salvataggio dei progetti sottoposti al proprio controllo. Quando l'utente sceglie di esportare gli insiemi di progetti, vengono visualizzati come candidati per l'esportazione solo i progetti configurati con repository che definiscono insiemi di progetti. Questa API sostituisce la vecchia API di serializzazione dell'insieme di progetti (fare riferimento a quanto riportato in basso).
La classe di funzionalità dell'insieme di progetti per un fornitore di repository viene richiamata dalla classe RepositoryProviderType registrata nella stessa estensione del fornitore di repository. Ad esempio:
<extension point="org.eclipse.team.core.repository"> <repository typeClass="org.eclipse.team.internal.ccvs.core.CVSTeamProviderType" class="org.eclipse.team.internal.ccvs.core.CVSTeamProvider" id="org.eclipse.team.cvs.core.cvsnature"> </repository> </extension>
Prima della versione 3.0, il punto di estensione org.eclipse.team.core.projectSets consentiva ai fornitori di repository di indicare una classe che implementava il salvataggio dei progetti per i progetti sotto il loro controllo. Quando l'utente sceglie di esportare gli insiemi di progetti, vengono visualizzati come candidati per l'esportazione solo i progetti configurati con repository che definiscono insiemi di progetti.
Ad esempio, il client CVS dichiara quanto segue:
<extension point="org.eclipse.team.core.projectSets"> <projectSets id="org.eclipse.team.cvs.core.cvsnature" class="org.eclipse.team.internal.ccvs.ui.CVSProjectSetSerializer"/> </extension>
La classe specificata deve implementare IProjectSetSerializer. L'utilizzo di questa interfaccia è ancora supportato nella versione 3.0 ma risulta obsoleto.