Dimensione: 3600
Commento:
|
Dimensione: 3782
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
==Subversion (SVN) mini howto== | = Subversion (SVN) mini howto = |
Linea 26: | Linea 26: |
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. | 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 inizialmente. Possiamo iniziare a sviluppare modificando la copia di lavoro, ovvero i file scaricati. |
Linea 37: | Linea 37: |
* ?: file non sotto il controllo di subversion | * ?: file non sotto il controllo di subversion (i comandi svn non hanno effetto su quel file) |
Linea 45: | Linea 45: |
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. |
Mentre svn checkout di solito viene utilizzato una sola volta all'inizio, svn update aggiorna alla revisione piu' recente la copia gia' scaricata con svn checkout. Durante l'update possono comparire alcuni flag: * A - file aggiunto (Added) * U - file aggiornato (Updated) * G - cambiamenti fusi (merGed), quando modifiche locali ed aggiornamento dal repository sono compatibili * C - conflitto (Conflict). Le modifiche locali non sono compatibili con quelle nel repository. Vedere piu' giu' come risolvere conflitti. |
Linea 53: | Linea 53: |
$svn commit -m "elenco dei cambiamenti" | $svn commit -m "risolto bug n. 12" |
Linea 57: | Linea 57: |
$svn ci -m "elenco dei cambiamenti" | $svn ci -m "risolto bug n. 12" |
Linea 60: | Linea 60: |
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. | Fa l'upload delle modifiche correnti. L'opzione -m e' obbligatoria ed e' buona regola scrivere un messaggio significativo con la descrizione delle nuove modifiche. |
Linea 63: | Linea 63: |
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: | Quando si crea un nuovo file, questo non viene aggiunto automaticamente al controllo di subversion (ovvero i comandi svn non hanno effetto su quel file). Per aggiungere un file o una directory al controllo di subversion utilizzare svn add: |
Linea 92: | Linea 92: |
svn help mostra l'aiuto per un determinato sottocomando di subversion (i sottocomandi sono checkout, udpate, commit, etc) | svn help mostra l'aiuto per un determinato subcomando di subversion (i subcomandi sono checkout, udpate, commit, etc) |
Linea 95: | Linea 95: |
== esempio di ciclo di lavoro == |
|
Linea 102: | Linea 104: |
Fa vedere gli ultimi 10 messaggi del log (opzione -m di svn commit). | Fa vedere gli ultimi 10 messaggi del log (messaggi inseriti con l'opzione -m di svn commit). == svn diff == == svn revert == |
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 inizialmente. 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 (i comandi svn non hanno effetto su quel file)
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 revisione piu' recente la copia gia' scaricata con svn checkout. Durante l'update possono comparire alcuni flag:
- A - file aggiunto (Added)
- U - file aggiornato (Updated)
- G - cambiamenti fusi (merGed), quando modifiche locali ed aggiornamento dal repository sono compatibili
- C - conflitto (Conflict). Le modifiche locali non sono compatibili con quelle nel repository. Vedere piu' giu' come risolvere conflitti.
svn commit
$svn commit -m "risolto bug n. 12"
oppure
$svn ci -m "risolto bug n. 12"
Fa l'upload delle modifiche correnti. L'opzione -m e' obbligatoria ed e' buona regola scrivere un messaggio significativo con la descrizione delle nuove modifiche.
file: nuovi, copiare, rinominare, spostare
Quando si crea un nuovo file, questo non viene aggiunto automaticamente al controllo di subversion (ovvero i comandi svn non hanno effetto su quel file). 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 subcomando di subversion (i subcomandi sono checkout, udpate, commit, etc)
risolvere conflitti: svn resolved
esempio di ciclo di lavoro
svn log
$svn log --limit 10
Fa vedere gli ultimi 10 messaggi del log (messaggi inseriti con l'opzione -m di svn commit).
svn diff