Tutorial utilizzo SVN su piattaforma S.A. Uno dei requisiti principali dello sviluppo di progetti in Team è la necessità di avere uno spazio nel quale condividere il progetto con tutti i TeamMates. Subversion (noto anche come svn, che è il nome del suo client a riga di comando) è un sistema di controllo versione progettato specificamente per sostituire CVS, che è considerato avere troppe carenze. (Wiki Ita) Per capire come funziona una architettura Svn bisogna prima conoscere l'architettura CVS, per maggiori dettagli visitare http://it.wikipedia.org/wiki/concurrent_versions_system Iniziamo la panoramica sul funzionamento dell'svn sulla suite S.A. Per installare un Client SVN ci serviremo di subclipse, un plugin per Eclipse che è la piattaforma sulla quale si basa il S.A. Le istruzioni di installazione possono essere trovate sul sito: http://subclipse.tigris.org/install.html Una volta installato il plugin potremo notare che nelle prospettive del S.A. è comparsa quella nominata SVN Repository Exploring. Apriamo la nuova prospettiva e comparirà una scheda chiamata SVN Repository, che serve ad esplorare le repository presente sul server. Per esplorare il contenuto della repository, dobbiamo innanzitutto possedere l'indirizzo del Server, poi dobbiamo possedere un nome utente e una password per i diritti di scrittura e lettura sul server, può comunque essere abilitata la funzione Utente Anonymus che consente la sola lettura dei file presenti in repository. FASE 1: Per aggiungere un nuovo percorso repository basta Click DX->New->Repository Location... Comparirà una Form da compilare per accedere alla repository. E'una procedura molto semplice da seguire, del tutto guidata, una volta inserito l'indirizzo del percorso repository, basterà attendere che compaiano informazioni.
Il tempo di attesa dipende sempre dal tipo di connessione che si ha a disposizione. Una volta comparse le informazioni, vedremo delle icone a noi familiari: Cartelle (Directory) File (di diversa estensione) Il piccolo numerino presente vicino ad ogni file indica il numero di versione, indica con un numero crescente la quantità e le modifiche effettuate ad ogni singolo file (Versionamento delle directories: CVS traccia la storia dei soli files, mentre Subversion implementa il versionamento di un filesystem virtuale che traccia i cambiamenti nel tempo degli interi alberi directory. Pertanto sia i files che le directories vengono versionati). FASE 2: History list. Il sistema di versionamento tiene traccia di tutti i cambiamenti relativi ad ogni singolo file ed al progetto, ogni file quindi contiene un file di log che mantiene informazioni riguardanti a: Numero di Revisione Data Autore Commento (impostato dall'autore) Azione Directories coinvolte Descrizione Possiamo visualizzare queste informazioni Click DX sul file o progetto->show in Resource History Verrà visualizzata una piccola prospettiva in basso contenente una tabella nella quale le righe corrispondono alle diverse modifiche e le colonne alle diverse informazioni.
FASE 3:Condividere un progetto con la repository. Il passo base per cominciare lo sviluppo in team è quello di condividere un progetto o un abbozzo con il repository. Ogni volta che condivido un nuovo progetto, la nostra directory di lavoro presente nel workbench del nostro computer viene trasferita sulla cartella di repository, come una sorta di Primo Commit. Un commit (o, più raramente, install, submit, check-in o ci) si effettua quando si copiano le modifiche fatte su file locali nella directory (il software di controllo versione controlla quali file sono stati modificati dall'ultima sincronizzazione). (Wiki Ita) Iniziamo col condividere un nostro progetto: Torniamo ad una prospettiva grazie alla quale possiamo esplorare lo stato del nostro progetto Click DX->Team->Condividi Progetto sulla cartella del nostro progetto. Selezionare la categoria di condivisione SVN. Avanti> Selezionare il percorso Repository appena immesso. Avanti> Inserisci il nome della cartella di repository al server. Avanti>
Inserisci il commento per il primo commit. Fine. Attendere che la barra di avanzamento sia completamente piena, sintomo che il progetto è stato condiviso con successo. Selezionare le risorse per il commit. Premere OK. Attendere quindi il riempimento della barra di avanzamento.
Per un riscontro della sincronizzazione, potete vedere che vicino ai vostri file e al vostro progetto è comparso un piccolo cilindro che indica la condivisione con il database repository. FASE 4: Commit successivi. Ad ogni modifica può essere effettuato un semplice commit di un solo o piu file, semplicemente con un Click DX->Team->Commit. Ad esempio ho modificato il file Dirigente.cpp e mi appresto ad effettuare un commit. Ad ogni modifica salvata di un file, vicino ad esso comparirà un piccolo asterisco che indica la mancata sincronizzazione del file con la repository. Il nome giovannipace vicino al file, indica l'utente che in questo momento è connesso alla repository temporanea locale, ogni commit quindi avrà come autore proprio quel nome. Effettuiamo il commit e torniamo alla prospettiva di SVN dopo aver effettuato un refresh. Click DX->Refresh. Controlliamo nell'history box il file Dirigente.h e noteremo che: la lista dei commit è stata aggiornata con la nostra nuova modifica. Nelle altre prospettive, nella sottosezione Team troviamo anche Checkout e Update, la prima opzione serve per scaricare il progetto da repository nella propria cartella temporanea locale, la seconda serve per controllare se sul percorso repository c'è qualche file da updateare. Synchronize With Repository è utilissima per controllare se ci sono state modifiche riguardanti la repository, se ve ne sono, verrà aperta una nuova finestra che illustrerà quali modifiche a quali file sono state effettuate.
FASE 1B: Checkout iniziale di un progetto. Quando un nuovo teammate entra nel team, deve scaricare il suo progetto sul computer, basta seguire le seguenti istruzioni: File->Nuovo->Progetto...->Esplodi SVN->Checkout Projects from SVN Selezionare il percorso repository e di conseguenza verrà creata nel workbench una nuova directory contenente i file appena scaricati. By H4 Enjoy ^_^