Zbiory projektów

Ponieważ zasoby projektu podlegającego kontroli wersji są przechowywane w repozytorium, członkowie zespołu mogą współużytkować projekty, współużytkując odwołania do informacji właściwych dla repozytorium, które są potrzebne do zrekonstruowania projektu w obszarze roboczym.  Można to zrobić, używając dla zbiorów projektów zespołu specjalnej operacji eksportu plików.  

 

W wersji 3.0, do klasy ProjectSetCapability dodano interfejs API, aby umożliwić dostawcom repozytorium zadeklarowanie klasy, która implementuje operację zapisywania projektów kontrolowanych przez tych dostawców.  Gdy użytkownik zdecyduje się wyeksportować zbiory projektów, na liście projektów dostępnych do wyeksportowania zostaną wyświetlone tylko projekty powiązane z repozytoriami, które definiują zbiory projektów. Ten interfejs API zastępuje stary interfejs API szeregowania zbiorów projektów (patrz niżej).

Klasa możliwości zbioru projektów dla dostawcy repozytorium jest uzyskiwana z klasy RepositoryProviderType zarejestrowanej w tym samym rozszerzeniu co dostawca repozytorium. Na przykład:

<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>

Przed wersją 3.0 punkt rozszerzenia org.eclipse.team.core.projectSets umożliwiał dostawcom repozytorium deklarowanie klasy implementującej operację zapisywania projektów kontrolowanych przez tych dostawców.  Gdy użytkownik zdecyduje się wyeksportować zbiory projektów, na liście projektów dostępnych do wyeksportowania zostaną wyświetlone tylko projekty powiązane z repozytoriami, które definiują zbiory projektów.

Na przykład klient CVS zawiera następujące deklaracje:

<extension point="org.eclipse.team.core.projectSets">
	<projectSets id="org.eclipse.team.cvs.core.cvsnature" class="org.eclipse.team.internal.ccvs.ui.CVSProjectSetSerializer"/>
 </extension>

Określona klasa musi implementować interfejs IProjectSetSerializer. Użycie tego interfejsu jest w dalszym ciągu obsługiwane w wersji 3.0, ale zostało oznaczone jako nieaktualne.