Translation(s): English - Italiano

(!) ?Discussion


Introduzione

Subversion, anche conosciuto come SVN (pacchetto Debian), è un sistema di controllo revisioni, un ineccepibile sostituto di CVS nella comunità open source.

Rispetto a CVS ha molte funzionalità aggiuntive e miglioramenti rispetto a CVS, ma i più importanti sono:

Nota: ulteriori informazioni sulle funzionalità possono essere trovate nel libro SVN.

Nota: Consultare la pagina del piccolo tutorial SVN se si sta cercando un tutorial d'amministrazione.

Comandi di base e loro utilizzo

I progetti devono iniziare: svn import

Ogni progetto deve iniziare la sua vita in SVN tramite un comando di importazione, si raccomanda che ogni progetto abbia una struttura che permetta la gestione dei rami e delle etichette in modo conveniente, si veda il capitolo scegliere l'aspetto del repository.

svn import -m "Nuova importazione" localprojdir svn+ssh://svn.debian.org/svn/aliothproj/percorso/nel/progetto/repository

Dopo l'importazione iniziale, il sorgente appena usato deve essere rimosso e per ulteriori modifiche va utilizzata una versione ottenuta con un check out.

Sommario:

Ottenere una copia funzionante: svn checkout

Una volta che il progetto è in subversion uno sviluppatore può ottenere una copia di esso utilizzando il comando checkout, è necessario affinché subversion sia in grado di monitorare le modifiche locali. Di solito dal trunk si vuole ottenere la versione più recente ma in alcuni casi si potrebbe voler controllare un ramo; il check out di un ramo non è diverso da quello del trunk, si userà il comando svn checkout.

svn checkout svn+ssh://developer@svn.debian.org/svn/aliothproj/trunk

Ora è possibile apportare le modifiche alla directory ottenuta.

Nota: Non è possibile fare il check out di un singolo file, è permesso solo per le directory.

Sommario:

Verifica dello stato: svn status

È stata fatta la modifica ma si desidera visualizzare un riepilogo dello stato della copia locale.

svn status

Sommario:

Verifica delle modifiche: svn diff

Si è scoperto che sono state apportate alcune modifiche ad un file da quando è stato sincronizzato con il repository, la visualizzazione del contenuto della modifica può essere eseguita con svn diff.

svn diff

Sommario:

Salvare le modifiche: svn commit

Si è controllato cosa è cambiato e si decide che è il momento di rendere pubbliche le proprie modifiche: si userà svn commit.

svn commit -m "apportate modifiche alla directory corrente"

Se non viene specificato alcun parametro, viene fatto il commit in subversion dei cambiamenti della directory corrente (e delle sottodirectory), il commit può essere anche fatto con un sistema "per file" specificando i nomi dei file e delle sottodirectory.

svn commit -m "apportate modifiche ad alcuni file" file_modificati

Sommario:

Gestione dei rami e delle etichette: svn copy

Di tanto in tanto è necessario isolare un certo snapshot (di solito dal trunk) del progetto, ad esempio nel caso in cui si voglia che un rilascio o una certa caratteristica di un progetto vengano sviluppati in un ramo.

Subversion non fa distinzione tra la copia, la marcatura e la ramificazione, tutto può essere compiuto attraverso il comando copy.

svn copy -m "Tag release 0.4" svn+ssh://svn.debian.org/svn/aliothproj/trunk svn+ssh://svn.debian.org/svn/aliothproj/tags/0.4

oppure, per essere certi che sia etichettata la versione corretta:

svn copy -r123 -m "Tag release 0.4" svn+ssh://svn.debian.org/svn/aliothproj/trunk svn+ssh://svn.debian.org/svn/aliothproj/tags/0.4

Nota: sostituire l'opzione -r (123) con il numero della revisione che bisogna etichettare.

Sommario:

Ciclo di base del lavoro

Il libro SVN descrive accuratamente il ciclo di base del lavoro; ulteriori informazioni sono disponibili qui.

Consigli e trucchi