Subversion è un software utilizzato come strumento per la gestione dei file (codici sorgenti),in cui vi possono lavorare diversi sviluppatori .Una delle sue funzionalità principali è quella di gestire in contemporanea due o più versioni distinte che si sviluppano in maniera indipendente avendo in comune inizialmente lo stesso codice sorgente. La gestione del codice sorgente avviene per mezzo di una repository cioè un server a cui possono accedere solamente gli sviluppatori del codice oppure una semplice directory del file system. Per interfacciarsi con il file system subversion utilizza un componente software l’hook.Le funzioni principali degli sviluppatori che lavorano al codice sono: Commit e Check-Out. Check Out: Estrae un file del codice sorgente dalla repository e ne fa una working-copy in cui effettua delle modifiche. Commit: Cioè il trasferimento della working-copy (su cui sono state apportate modifiche) nella repository. Uno dei problemi principali che possono sorgere nell’utilizzo di SVN è la gestione del codice sorgente da parte di più programmatori per esempio: Due sviluppatori modificano lo stesso file e lo caricano nella repository in momenti diversi,colui che carica per ultimo la propria versione andrà a sovrascrivere completamente la versione caricata precedentemente dall’altro sviluppatore. Per rimediare a questi conflitti esistono diverse tecniche effettuate dagli sviluppatori: Lock e Merge.Il primo blocca temporaneamente il file principale fino a quando non carica la propria versione,mentre il Merge legata alla tecnica del Branch che gestisce il codice sorgente in più file e unisce le modifiche effettuate dagli sviluppatori.
TortoiseSVN: È un client grafico che rende più agevole l’uso di Subversion attraverso delle icone sulla repository