Usare Subversion da Linux Shell: complessità VS comodità

Sebbene possa sembrare più complicato tutto ciò che non ha una GUI, una volta imparati i trucchetti diventa più veloce utilizzare la linea di comando. Un esempio pratico è l’uso di Subversion aka “SVN”.

All’inizio piò sembrare scomoda la gestione di un repository locale usando solo comandi da shell, ma con il tempo di apprezza l’immediatezza e la rapidità nell’eseguire i comandi. Questa guida vuole essere di riferimento a chi non ha mai usato prima Subversion e vuole sapere come iniziare.

Innanzitutto l’installazione: niente di più facile nella nostra fedele Ubuntu. Basta selezionare il pacchetto subversion da Synaptic o, per rimanere in tema shell:

$   sudo apt-get install subversion

A questo punto non ci rimane che dare un prontuario dei comandi per iniziare.

Come scaricare l’ultima versione dei file interessati

L’operazione di scaricamento, anche nota come Checkout, consiste nello scaricare tramite il comando svn da un percorso remoto a cui è presente un server svn, di uno o piu file di cui si vuole controllare l’avanzamento di versione.
Per effettuare uno checkout è sufficiente aprire una shell, posizionarsi nella posizione in cui si vuole scaricare la copia dei file (come esempio prendiamo la cartella /home/utente/ ed eseguire il comando.
Un esempio è il seguente:

$ cd /home/utente

$ svn co http://indirizzo_del_server:porta_del_server/percorso_di_scaricamento CARTELLA_IN_CUI_INSERIRE_I_FILE_SCARICATI

Più precisamente il comando co o checkout preleva i file dal server inserendoli nella CARTELLA_IN_CUI_INSERIRE_I_FILE_SCARICATI nella quale si potra automaticamente eseguire le operazioni di controllo di versione tramite svn.
Per maggiori informazioni sul comando svn co eseguire da console

$ svn help co

Come verificare lo stato della mia copia locale

Per verificare lo stato corrente della propria copia locale è sufficiente portarsi tramite shell in una directory in cui precedentemente si è fatto un checkout e eseguire il comando

$ cd /home/utente/copia_locale_svn

$ svn status

A seguito di questo comando si otterrà una lista (più o meno lunga) dei file modificati, aggiunti, rimossi o di cui non si hanno informazioni presenti nella directory o in una sottodirectory.
L’output mostrato è di questo tipo:

?   dir1/sottodir1/file_1.jpg

M   dir1/file_2.png

A   dir3/

AM  dir2/sottodir3/

e vuole significare che:

  • il file dir1/sottodir1/file_1.jpg (preceduto dalla ?) non era presente originariamente nel repository al momento del checkout ed è stato aggiunto ora. Per inserirlo nel repository è necessario usare il comando svn add
  • il file dir1/file_2.png (preceduto dalla M) è stato modificato
  • la directory dir3/ (preceduta dalla A) è stata aggiunta al repository
  • la directory dir2/sottodir3/ (precedura da AM) è stata aggiunta nel repository e modificata in seguito

Nota 1: tutte le informazioni disponibili sono riferite alla versione scaricata dal CO. Se nel frattempo altri utenti hanno aggiunto modifiche, queste non verranno evidenziate prima del prossimo co o del prossimo update
Nota 2: tutti i file non menzionati nell’output del comando svn status non sono stati alterati

Come aggiungere le mie modifiche al repository

Una volta completate le modifiche ai file ritenute necessarie, sorge il problema di aggiungere queste modifiche all’interno del repository in modo da renderle fruibili dagli altri utenti. Per farlo si usa il comando svn commit

$ cd /home/utente/copia_locale_svn

$ svn commit

Una volta eseguito il comando commit, apparirà una schermata in cui inserire un messaggio che accompagni e renda chiare a tutti le modifiche.E’ buona norma scrivere tutte le modifiche in maniera dettagliata, in modo che gli altri utenti possano eventualmente correggere il proprio codice alle nuove modifiche. Documentare ogni modifica, anche minima. Una volta concluso il messaggio premere la combinazioni di tasti CTRL+X e per uscire dall’editor del messaggio e eseguire il commit.

Altri comandi comuni

  • svn update: serve per aggiornare la propria copia locale all’ultima versione presente nel repository. Per eseguirlo portarsi all’interno della copia locale ed eseguire il comando:
    $ cd /home/utente/copia_locale_svn/
    
    $ svn update
  • svn revert PERCORSO: ripristina il o i file indicati da PERCORSO alla versione originale scaricata tramite il Checkout, vanificando le modifiche presenti in locale. Un esempio di utilizzo:
    $ cd /home/utente/copia_locale_svn/
    
    $ svn revert file1.png
    
    Ripristinato a versione precedente 'file.png'
  • svn help: visualizza l’help del comando svn. Aggiungendo un comando alla fine di svn help si otterrà l’help approfondita relativa a quel comando. Un esempio di utilizzo
    $ svn help
    
    *** Visualizza help generico ***
    
    $ svn help commit
    
    *** Visualizza help dettagliato del comando commit ***

Lascia un commento