Subversion è un sistema di controllo di versione libero e open-source. Cioè Subversion gestisce file e directory nel tempo. Un'alberatura di file è inserita all'interno di un repository centrale. Il repository è paragonabile ad un file server, in più esso ricorda qualsiasi cambiamento apportato ai file e alle directory. Ciò permette di ripristinare vecchie versioni dei dati o di esaminare lo storico dei cambiamenti. Per questo motivo, molte persone considerano un sistema di controllo di versione come una sorta di «macchina del tempo».
L'alberatura del vostro progetto dovrà contenere tre directory di livello piu' alto chiamate
branches, tags e
trunk. La directory trunk conterrà tutti i vostri dati, mentre le directory branches e tags sono vuote. Le sottodirectory branches, tags, e trunk non sono in realta' richieste da Subversion Sono semplicemente una convenzione comune che molto probabilmente vorrete usare in seguito anche voi.
Creare la prima copia sul repo:
$ svn import /tmp/myproject file:///path/to/repos/myproject -m "initial import"
Prendere una copia dei dati completa dal repository:
$ svn checkout file:///path/to/repos/myproject/trunk myproject
Per commissionare i cambiamenti effettuati ad SVN basta usare il comando
svn commit e per aggiornare i propri dati (avendo già eseguito il checkout) basta usare
svn update.
Guida per svn come clientper visualizzare il contenuto di un svn prima del checkout
svn list url
oppure
svn list url --username nomeutente
per fare il checkout
svn checkout url destinationdir
dopo aver effettuato alcuni cambiamenti è possibile
visualizzare le modifiche
svn diff
commissionare le modifiche
svn commit
effettuare un update di revisione
svn update
aggiungere un nuovo file
svn add nomefile
annullare l'ultima operazione committata
svn revert nomefile
per la risoluzione dei conflitti
da documentare....
per vedere l'elenco dei cambiamenti
svn log
Controllo di versione con SubVersionUn articolo molto interessante:
http://www.simonecarletti.com/blog/2007/03/strumenti-sviluppo-subversion-svn.php