Italiano English
Modifica History Actions

Differenze per "SvnHowTo"

Differenze tra le versioni 3 e 4
Versione 3 del 2007-04-28 19:54:47
Dimensione: 3596
Autore: ClauzClauz
Commento:
Versione 4 del 2007-04-28 19:55:42
Dimensione: 3600
Autore: ClauzClauz
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 80: Linea 80:
svn copy file.c ./nuovadir/file.c $svn copy file.c ./nuovadir/file.c
Linea 85: Linea 85:
svn move file.c file.cpp $svn move file.c file.cpp
Linea 90: Linea 90:
svn help copy $svn help copy
Linea 99: Linea 99:
svn log --limit 10 $svn log --limit 10

==Subversion (SVN) mini howto==

TableOfContents

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 ed e' buona regola scrivere un messaggio significativo con l'elenco dei cambiamenti effettuati.

file: nuovi, copiare, rinominare, spostare

Quando si crea un nuovo file, questo non viene aggiunto automaticamente al controllo di subversion (update e commit non hanno effetto). Per aggiungere un file o una directory al controllo di subversion utilizzare svn add:

$svn add nuovofile.txt

Per le directory si puo' utilizzare

$svn mkdir nuovadirectory

che crea la nuova directory "nuovadirectory" e la aggiunge al controllo di subversion.

Per cancellare file non bisogna mai utilizzare i comandi del sistema operativo, ma il comando svn delete:

$svn delete file.c

Anche per copiare non bisogna utilizzare il sistema operativo, ma

$svn copy file.c ./nuovadir/file.c

Similmente per rinominare e spostare:

$svn move file.c file.cpp

svn help

$svn help copy

svn help mostra l'aiuto per un determinato sottocomando di subversion (i sottocomandi sono checkout, udpate, commit, etc)

risolvere conflitti: svn resolved

svn log

$svn log --limit 10

Fa vedere gli ultimi 10 messaggi del log (opzione -m di svn commit).