Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Subversion: mantenere il controllo del codice delle applicazioni

Cosa sono, a cosa servono e come si usano i sistemi server di controllo delle versioni: miniguida all'installazione di Subversion e TortoiseSVN
Cosa sono, a cosa servono e come si usano i sistemi server di controllo delle versioni: miniguida all'installazione di Subversion e TortoiseSVN
Link copiato negli appunti

I sistemi di controllo delle versioni, anche detti Version Control System, sono applicativi fondamentali nel ciclo di sviluppo di un software: tengono traccia di tutte le modifiche applicate al codice sorgente permettendo di confrontarle con la propria copia locale o con versioni precedenti, permettono di recuperare modifiche precedenti ed infine, tenendo traccia anche dei file e delle directory, permettono di recuperare, per intero, dati non più presenti nelle ultime revisioni.

Il più noto, oltre che il più usato, è sicuramente il CVS (Concurrent Versions System), anche se l'effettivo padre di questa categoria di applicativi è RCS, Revision Control System, il primo sistema di controllo delle versioni che, però, permetteva di gestire il singolo file e non interi progetti, rendendo complicato l'utilizzo e la gestione degli archivi del codice sorgente.

Esistono svariati software, oltre al CVS e a RCS, che si occupano di questa tipologia di operazioni:

  • SVN, chiamato anche Subversion;
  • Monotone;
  • Git;
  • SCCS;
  • CSSC;
  • DCVS;
  • BitKeeper;
  • Arch;

I più usati, vista la loro completezza e stabilità, sono CVS e SVN. Subversion

  • L'Atomic Commit: nel caso il commit delle modifiche (ossia l'intero corpo delle modifiche) non venga completato, l'intero repository non viene corrotto;

  • Supporto nativo per i file binari: il CVS non è in grado di tenere traccia delle modifiche dei file binari e nel caso in cui viene forzato a farlo li danneggia;

  • Versioning delle directory: il CVS permette di tenere traccia delle modifiche solo sui file.

  • In questo articolo tratteremo l'installazione di SVN su Windows, la sua configurazione, la creazione di un repository e l'utilizzo di questo tramite TortoiseSVN. 

    Installazione

    Come prima cosa è necessario scaricare l'installatore per Windows che si trova alle pagine di download del sito del progetto.

    Una volta scaricato il file è necessario avviare l'installatore avviando l'eseguibile appena scaricato dall'archivio dei file di subversion. È importante eseguire l'installazione con i parametri di default se non si ha esperienza con questo tipo di software.   

    Configurazione

    Quando vengono creati i repository sull'SVN viene generata una serie di cartelle e file sul disco contenenti le opzioni di default. Queste impostazioni vengono letti quando si eseguono operazioni sul repository, dando la possibilità di modificare i valori in tempo reale. Per poter iniziare ad usare l'SVN è necessario configurare correttamente il sistema per far partire all'avvio il server di subversion.

    Per far ciò è necessario svolgere queste semplici operazioni seguendo il percorso suggerito: Start / Tutti i Programmi / Esecuzione Automatica. Eseguire un clic col tasto destro del mouse sulla cartella selezionata e selezionare dal menu la voce Apri; Aperta la cartella fare clic col destro all'interno di questa e selezionare Nuovo e poi Collegamento. A questo punto sarà necessario incollare queste righe per configurare il collegamento appena creato. Quando verrà richiesto il percorso del collegamento inserire:

    C:ProgrammiSubversionbinsvnserve.exe -d -r C:SVNRepository
    

    Premere Avanti. Quando verrà richiesto il nome del collegamento inserire:

    SVN Server
    

    Per completare la creazione del collegamento premere Fine. Una volta creato il collegamento eseguitelo in modo da avviare il server e poter usare SVN fin da subito.

    Nota: avviato il software compare una console Dos: ciò potrebbe risultare fastidiosa per molti. Per poter nascondere questa finestra in automatico è necessario aprire le proprietà del collegamento e selezionare, dal menu Esegui, la voce Ridotta a Icona.

    Creazione di un repository

    Per utilizzare il programma va creato un repository, ossia un archivio da utilizzare per salvare i file. Per poter creare il repository, ed in generale amministrare i repository già creati, è necessario utilizzare il comando svnadmin, comando che non dispone di un'interfaccia grafica e lavora con una console Dos. Per avviare la console Dos è necessario aprire il menu Start, cliccare su Esegui, scrivere il comando cmd nella casella di testo ed infine premere Ok. A questo punto, nella console Dos appena comparsa, digitare:

    cd C:ProgrammiSubversionbin
    

    Per creare quindi il repository digitare:

    svnadmin create C:SVNRepositoryRepositoryTest
    

    All'interno del repository C:SVNRepositoryRepositoryTest c'è una cartella estremamente importante, ovvero quella contenente i file di configurazione con le impostazioni generali e le impostazioni di accesso:

    • authz

    • passwd

    • svnserve.conf

    Al momento non interessa impostare le password, perchè non dobbiamo abilitare l'autenticazione, quindi sarà necessario configurare solo il file svnserve.conf

    [general]
    anon-access = write
    auth-access = write
    realm = Il mio primo repository
    

    In questo modo utenti anonimi ed abilitati potranno accedere al repository dei sorgenti chiamato Il mio primo repository.

    Utilizzare il repository 

    Per poter utilizzare il repository è necessario installare un frontend, ossia un'intrefaccia grafica per i comandi eseguibili tramite riga di comando. Ci sono svariati frontend per SVN, ma quello che tratteremo è TortoiseSVN: si integra con la Shell permettendo di gestire il repository tramite Explorer. 

    Il repository appena creato non è l'archivio sul quale si lavora, bensì un database centrale contenente tutte le modifiche effettuate. Effettivamente, quando si usa l'SVN, si lavora su una copia del repository chiamata Working Copy ('Copia di Lavoro'). Dopo aver generato il repository è necessario creare la propria Working Copy ed effettuare le modifiche su questa. Le modifiche, tramite i tool o frontend appositi, vengono poi trasferite sul repository in modo da renderle disponibili a tutti. 

    Una domanda che sicuramente sorgerà spontanea, dopo aver iniziato ad usare Subversion, è: "Cosa succede se due utenti modificano lo stesso file contemporaneamente?". Ebbene, in questi casi l'SVN forza l'ultimo Committer, ovvero chi invia le modifiche al repository, ad aggiornare la propria copia locale e correggere eventuale codice cambiato prima del suo Commit, ovvero prima del suo invio, per poi reinviare i dati una volta risolto il conflitto. Fatta questa breve introduzione alle Working Copy possiamo procedere all'installazione di TortoiseSVN per iniziare ad usare il repository creato. Innanzi tutto è necessario scaricare il frontend dalla sua pagina di download ospitata da Sourceforge, scegliendo naturalmente l'ultima versione disponibile.

    Eseguito il download è necessario installarlo e riavviare Windows per poterlo usare correttamente. È importante creare la propria copia locale all'interno della document root del vostro Web Server in modo da poter applicare le modifiche al codice e vederle in tempo reale sul browser. Se avete installato Apache nella cartella di default, la document root si troverà al percorso C:ProgrammiApache GroupApachehtdocs. Accedete alla document root e create una cartella chiamata RepositoryTest.

    Non è necessario nominare la cartella nello stesso modo del repository: questo, però, facilità la gestione della vostra copia locale poichè eviterete confusione con i nomi.

    Una volta creata la cartella cliccate col tasto destro del mouse su questa, dal menu selezionate la voce SVN Checkout e nella finestra che comparirà andate ad inserire, nella prima casella di testo, l'Url svn://localhost/RepositoryTest, ovvero il percorso del vostro repository.

    Nota: se usate firewall è necessario aprire la porta usata dall'svn, la numero 3690, sia per il protocollo UDP sia per il protocollo  TCP, altrimenti non sarà possibile accedervi in nessun modo.

    Una volta eseguita questa operazione la vostra Working Copy sarà inizializzata e pronta all'uso. La copia locale del repository sarà raggiungibile tramite il browser all'indirizzo http://localhost/RepositoryTest.

    Le operazioni più comuni da eseguire sono:

    • Commit

    • Update

    • Delete

    • Revert

    • Update To Revision

    • Show Log

    • È possibile eseguire tutte queste operazioni ciccando col tasto destro sulle cartelle presenti nella copia locale del repository o, per eseguire l'operazione sull'intero repository, nella cartella che contiene la copia locale,

      Conclusioni

      Questo articolo non vuole essere una guida completa all'utilizzo di software di controllo delle versioni ma un'introduzione per chi lavora in ambito web e vuole avere più sicurezza e più flessibilità nel proprio lavoro. Utilizzare un sistema di questo tipo permette anche di avere una copia di backup del lavoro e di tutte le modifiche effettuate dando non solo la possibilità di condividere il proprio codice sorgente con altri sviluppatori ma anche, in caso di necessità, da la possibilità di recuperare parte del codice sorgente che è stato modificato o eliminato, o file di revisioni precedenti.

Ti consigliamo anche