Permettetemi di presentarvi il software oggetto di questo articolo con un breve aneddoto.
Nell'autunno del lontano 2007, avevamo ormai gettato le primissime basi di quella che sarebbe poi divenuta la web application che sospinge ancora oggi MegaLab.it.
Con l'aumentare delle linee di codice e della complessità del progetto, emersero però rapidamente una serie di situazioni difficili da gestire:
La via d'uscita per sbrogliare la matassa si è presentata sotto il nome di Subversion (noto anche come SVN). Si tratta di un'applicazione, distribuita con licenza GPL (open source) ed utilizzabile quindi liberamente anche per scopi professionali, da installarsi su una macchina "centrale".
SVN utilizza uno specifico protocollo per "dialogare" con le postazioni degli sviluppatori: una volta stabilito il collegamento, il client installato sul PC si occupa automaticamente di generare una lista di tutti i file modificati e di spedirli al server, il quale li memorizza in quello che, concettualmente, è un "database" interno.
Similmente, gli altri client autorizzati possono richiedere di ricevere tutto il materiale aggiornato e proporre il proprio.
In caso due postazioni avessero lavorato allo stesso documento, l'infrastruttura tenta di fondere in maniera automatica le rispettive novità, riducendo al minimo gli sprechi di tempo.
E se si rende necessario recuperare un vecchio file ormai sovrascritto o cancellato? Nessun problema: il server conserva infatti tutto quanto e, grazie anche al supporto dei commenti da inserirsi parallelamente ad ogni operazione, localizzare e ripristinare il materiale d'interesse è semplicissimo.
Nel corso di questo articolo, illustreremo come predisporre il server centrale ed il primo progetto. Successivamente, in "Checkout, commit e update da un client Windows: guida operativa a TortoiseSVN", vedremo come interagire con esso tramite un client.
Subversion e cloni vari sono disponibili per pressoché qualsiasi piattaforma. In questa sede, mi occuperò dell'installazione su una macchina dotata della distribuzione Linux CentOS. Per prima cosa, assicuratevi quindi di disporre di un calcolatore governato da questo sistema operativo: in caso così non fosse, consultate "Guida semplificata all'installazione di CentOS".
Sinceratevi altresì che il computer sul quale volete installare Subversion sia in grado di accedere ad Internet, perlomeno per la durata dell'installazione.
Ricordate che è necessario svolgere tutte le operazioni seguenti con i privilegi di root: per la massima comodità, vi raccomando caldamente di accedere direttamente al sistema con tale account.
Se preferite utilizzare il vostro utente deprivilegiato, potrebbe essere sufficiente lanciare i comandi proposti anteponendo la striga sudo ad ognuno di essi, ma non ho avuto modo di testare questo scenario.
Installare il software vero e proprio è facilissimo: aprite un'istanza di terminale da Applications -> Accessories-> Terminal ed impartite yum install subversion -y.
Attendete qualche istante ed il gioco è fatto.
Dovete ora procedere con la creazione della cartella principale che conterrà tutto il materiale.
Siccome sarà indispensabile indicare espressamente questo percorso sui vari client, vi raccomando vivamente di creare la directory in questione a livello root (/) ed utilizzare un nome molto breve (sì, amici Linuxisti esperti, è chiaro che potreste anche posizionare la cartella in un percorso a piacere ed utilizzare un link simbolico, ma stiamo cercando di semplificare!).
In questo esempio la chiameremo /repo: per realizzarla rapidamente, usate mkdir /repo oppure procedete da interfaccia grafica tramite Nautilus.
A questo punto, possiamo creare il nostro progetto: lanciate svnadmin create /repo/mioprogetto1 per predisporre automaticamente tutto il ramo di sottocartelle e file necessari ad un ipotetico progetto chiamato, appunto, mioprogetto1
Per impostazione predefinita, Subversion è configurato di modo da consentire pubblicamente l'accesso in lettura, ma restringere ai soli utenti registrati la scrittura.
Se non siete paladini dell'open source e desiderate limitare anche la visione dei documenti ai soli possessori di credenziali di log-in valide, proseguite come segue.
Lanciate gedit /repo/mioprogetto1/conf/svnserve.conf per aprire il file di configurazione principale del progetto appena creato ed individuate poi (pulsante Find) le due righe che recitano quanto segue:
Modificatele entrambe di modo che combacino con queste istruzioni
Prima di chiudere e salvare il file, scorrete poche righe più in basso ed eliminate il cancelletto (#) dalla riga # password-db = passwd: a modifica effettuata, si leggerà solamente password-db = passwd
Procediamo con la creazione degli account che saranno abilitati ad accedere al progetto.
Lanciate gedit /repo/mioprogetto1/conf/passwd ed inserite, uno sotto l'altro alla fine del file, le coppie di nomi utente e relative password nel formato NomeUtente=Password
Salvate e chiudete gedit.
A questo punto, il software dovrebbe essere pronto all'uso. Impartite service svnserve start per avviare il relativo servizio. In caso tutto sia funzionante, verrà mostrato l'incoraggiante OK verde.
Impostate il demone di modo che si auto-avvii insieme al sistema operativo con chkconfig svnserve on (oppure spuntando la casella di controllo relativa a svnserve e cliccando quindi il pulsante Save in System -> Administration -> Services)
Ora che il servizio è operativo, dobbiamo far sì che sia raggiungibile!
Per prima cosa, apriamo la porta sul firewall: seguite System -> Administration -> Security Level and Firewall per lanciare il pannello di configurazione.
Cliccate sul pulsante Add in basso a destra, immettete 3690, premete Ok e confermate ripetutamente fino a chiudere il tool
Se per il collegamento ad Internet del server viene utilizzato un router, è necessario configurare anche l'inoltro della stessa porta (port forwarding) verso la macchina in questione (per risalire all'indirizzo IP locale, fate riferimento all'articolo "Configurare indirizzo IP e DNS su CentOS").
La procedura esatta varia da modello a modello. Per quanto riguarda il diffusissimo Alice Gate fornito in comodato da Telecom Italia, è disponibile l'articolo "Aprire porte TCP/UDP su modem-router Alice gate 2 Plus e 2 Plus Wi-Fi". Per tutti gli altri apparecchi, dovrete fare riferimento al libretto di istruzioni.
Questo passaggio, chiaramente, è necessario solamente in caso desideriate rendere raggiungibile il servizio anche attraverso Internet: se invece il server ed i vari client sui quali lavorate fanno parte della stessa rete locale (LAN), potete garantirvi un po' di sicurezza in più evitando di rendere visibile Subversion all'esterno.
Arrivati a questo punto, dovrebbe essere tutto pronto al 100%. Non vi resta che connettervi da uno dei client! La procedura è stata mostrata in "Checkout, commit e update da un client Windows: guida operativa a TortoiseSVN".
Trattandosi di un software molto flessibile, Subversion espone moltissimi altri comandi e parametri: arrivati a questo punto tuttavia, la base per iniziare a lavorare concretamente è stata indubbiamente gettata.
Un ultimo passaggio che però risulta interessante in molte circostanze è la generazione ed il mantenimento di una copia di lavoro anche sul server: ho proposto la semplice procedura in "Eseguire automaticamente un "update" ad ogni "commit" con Subversion (SVN)".
Tutti gli articoli inerenti Subversion pubblicati da MegaLab.it sono raccolti sotto l'omonimo tag.
Il punto di riferimento ufficiale è invece il completissimo libro gratuito (in inglese) Version Control with Subversion consultabile liberamente all'indirizzo svnbook.red-bean.com.
MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .
Copyright 2008 MegaLab.it - Tutti i diritti sono riservati