==Subversion (SVN) mini howto==
Introduzione
[http://subversion.tigris.org/ Subversion] (SVN) si propone di essere il successore di CVS, ovvero un tool (composto da client e server) per lo sviluppo collaborativo. Questo mini howto riguarda solo il client ed e' di livello introduttivo. Per documentazione piu' completa (installazione, svnserve) ed approfondita rimandiamo alla documentazione ufficiale su http://svnbook.org/ .
trac
[http://trac.edgewall.org/ trac] permette di visualizzare il contenuto del repository SVN attraverso un'interfaccia web. Per esempio http://test.ninux.org/svntrac/browser .
trunk, branches, tags
Quando si utilizza svn e' usanza avere 3 directory:
- trunk - contiene il ramo di sviluppo principale
- branches - contiene rami di sviluppo secondari
- tags - contiene snapshot delle altre due directory in momenti significativi dello sviluppo
svn checkout
Esempio:
$svn checkout http://test.ninux.org/svn/pippo/trunk
oppure (abbreviato)
$svn co http://test.ninux.org/svn/pippo/trunk
scarica la revisione piu' aggiornata del contenuto della directory remota pippo/trunk nella directory locale corrente. Questo comando in genere va utilizzato una sola volta all'inizio dello sviluppo. Possiamo iniziare a sviluppare modificando la copia di lavoro, ovvero i file scaricati.
svn status
$svn status
Mostra una lista di file. I flag principali:
- M: file modificato
- A: file aggiunto
- D: file cancellato
- ?: file non sotto il controllo di subversion
svn update
Aggiorna la copia di lavoro dal repository
$svn update
Mentre svn checkout di solito viene utilizzato una sola volta all'inizio, svn update aggiorna alla versione piu' recente la copia gia' scaricata con svn checkout. Durante l'update possono comparire alcuni flag:
- A - file aggiunto
- U - file aggiornato
- G - cambiamenti merGed (fusi), cioe' modifiche locali ed aggiornamento sono compatibili
- C - conflitto. Le modifiche locali non sono compatibili con il file nel repository. Vedere piu' giu' come risolvere conflitti.
svn commit
$svn commit -m "elenco dei cambiamenti"
oppure
$svn ci -m "elenco dei cambiamenti"
Fa l'upload delle modifiche correnti. L'opzione -m e' obbligatoria.
file: nuovi, copiare, rinominare, spostare
risolvere conflitti: svn resolved