Subversion spesso abbreviato con l'acronimo SVN, è un sistema di controllo delle versioni che utilizza una Repository. Essa contiene il progetto iniziale che dev'essere modificato e tutte le sue varie versioni. Ogni singolo sviluppatore che deve modificare il file iniziale lo estrae dalla Repository e questa operazione prende il nome di check-out, una volta finite e verificate le modifiche si fa un commit cioè si trasferisce il file modificato nella Repository. Quest'ultima operazione genera automaticamente una revisione identificata da un numero progressivo. Ogni programmatore fa una working-copy che è una copia della Repository sulla quale apportare le modifiche. Essendo più sviluppatori a modificare lo stesso file può capitare che uno di questi vada a sovrascrivere involontariamente su un'ultima modifica riportata da un altro sviluppatore. Per risolvere questo problema SVM usa una tecnica nota come copy-modify-merge che genera un errore di conflitto in fase di commit così che i sviluppatori coinvolti decidano quale versione scegliere. Dopo aver importato un nuovo progetto software dalla Repository e aver estratto il file da quest'ultima lo sviluppatore come prima cosa dovrà aggiornare la propria working-copy e risolvere eventuali conflitti, dovrà lavorare nella sua workin-copy e infine dovrà verificare lo stato delle modifiche apportate rispetto all'ultima versione. Una volta finito dovrà effettuare il commit della working-copy nella Repository così da rendere disponibile le proprie modifiche.
Tortoise-SVN è un client grafico di Subversion integrato con la GUI. Una volta installato questo client indica lo stato di ogni directory/file della working-copy di cui è stato effettuato un check-out del Repository sovrapponendo un simbolo grafico alla propria icona. Inoltre ogni comando è presente nel menù contestuale che si ottiene cliccando con il tasto destro del mouse.