Prodotto di lavoro: Archivio progetto
Questo prodotto di lavoro memorizza tutte le versioni dei file e delle directory del progetto. Memorizza inoltre tutti i dati e meta dati derivati associati ai file e alle directory.
Scopo

Il repository del progetto memorizza tutti i file e le directory gestite dal tool CM del progetto. Il repository del progetto è una risorsa globale che deve essere acceduta dalla maggior parte dei "client" del team del progetto.

In base alla dimensione di un progetto potrebbero esistere più repository ed ogni repository potrebbe contenere decine di migliaia di file e directory. Il numero di file in qualsiasi dato repository di progetto dipende dalla dimensione della macchina su cui è in esecuzione il server del repository e il numero di utenti che si prevede accedano contemporaneamente ai dati. Il server del repository gestisce il traffico lettura/scrittura per il repository del progetto.

Relazioni
RuoliResponsabile: Modificato da:
Input inObbligatorio: Facoltativo: Esterno:
  • Nessuno
Output di
Proprietà
Facoltativo
PianificatoYes
Personalizzazione
Opzioni di rappresentazioneRappresentazione UML: Facoltativamente, è possibile rappresentare questo prodotto di lavoro come un pacchetto, stereotipato come <<repository di progetto>>.

L'adattamento di questo prodotto di lavoro dovrebbe essere documentato in Prodotto di lavoro: Piano di gestione della configurazione.

Il repository del progetto può essere un punto centrale di errore per tutte le risorse, e quindi deve essere affidabile, tollerare gli errori, scalabile per accomodare i dati di modalità e avere alte prestazioni in modo da non impedire lo sviluppo del prodotto. Le considerazioni chiave dell'hardware (in ordine di priorità) per il repository del progetto sono le seguenti:

  • Requisiti di memoria: La memoria è uno dei modi più economici di migliorare la prestazione di una strumento CM. Una regola pratica per quanta memoria principale viene richiesta nella macchina del server è di aggiungere lo spazio del database utilizzato dal repository del progetto e dividerlo per due. Ad esempio, 1MB di memoria principale dovrebbe essere sufficiente per consentire la memorizzazione nella cache e la scrittura dei dati di sfondo per 2MB di spazio del database. L'assunzione è che verrà eseguito l'accesso a metà dei dati nel repository del progetto in modo attivo in qualsiasi momento dato. Le macchine del server dovrebbero avere un minimo di 256MB. Sul lato del client, ogni macchina dello sviluppatore dovrebbe avere un minimo di 128MB di memoria principale.
  • Input del disco / Requisiti di output: Il secondo più probabile collo di bottiglia delle prestazioni nell'ambiente CM è la velocità alla quale i dati possono essere scritti nel disco. Operazioni intensive di lettura e scrittura sono check-in, check-out e creazione della linea di base. E' buona norma disporre di un controller dedicato e di un canale per disco.
  • Larghezza di banda della rete: Poiché lo strumento CM è di solito un'applicazione distribuita, l'adeguamento della capacità di rete e dell'affidabilità sono richiesti per una buona prestazione. Il consiglio è di porre le macchine che ospitano il repository del progetto e le viste sulla stessa sottorete. E se la LAN (local area network) è troppo satura come indicato dai timeout e dalle poche risposte, l'idea è di aumentare la capacità della rete o di aggiungere una sottorete per lo strumento CM che ospita la macchina. 
  • Spazio disco repository del progetto: In base alla dimensione di un progetto potrebbero esistere più repository ed ogni repository potrebbe contenere decine di migliaia di file e directory. Il numero di file in qualsiasi dato repository di progetto dipende dalla dimensione della macchina su cui è in esecuzione il server del repository e il numero di utenti che si prevede accedano contemporaneamente ai dati. Un repository del progetto di sviluppo del codice di lettura/scrittura può contenere meno elementi di un repository meno volatile che non ha lo stesso livello del traffico utente. Per un repository di progetto di sviluppo software, prevedere di contenere dai 3000 ai 5000 elementi nel repository. E' buona norma consentire la crescita dello spazio disco, e avere circa il 50% di spazio disco libero assegnando 2 giga-byte di memoria per il repository del progetto.

Il repository del progetto dovrebbe essere su un server dedicato. Questo significa che il server del repository del progetto non dovrebbe essere utilizzato per:

  • compilazioni, build o test
  • l'esecuzione di altri strumenti di terze parti
  • un server di posta
  • un server Web