CollabNet ha fondato il progetto Subversion nel 2000 come sforzo per sviluppare un sistema di controllo versione open source che funzionasse in modo simile aCVS, ma che correggesse i bug e fornisse alcune funzionalità mancanti in CVS.[1] Entro il 2001, Subversion aveva progredito a sufficienza da ospitare il proprio codice sorgente,[1] e nel febbraio 2004 è stata rilasciata la versione 1.0.[2] Nel novembre 2009, Subversion è stato accettato nell'Apache Incubator: questo segnò l'inizio del processo per diventare un progetto standard di primo livello di Apache.[3] È diventato un progetto di primo livello di Apache il 17 febbraio 2010.[4]
Come server centralizzato si può usare ilserver WebApache, tramite il protocolloWebDAV/DeltaV, oppure un server indipendente che usa unprotocollo personalizzato basato suTCP/IP.
Ilbranching e iltagging sono operazioni veloci, che richiedono un tempo indipendente dalla dimensione dei dati.
Il progetto è nativamenteclient/server, ed è basato su una libreria stratificata.
Il protocollo client/server invia solo le differenze in entrambe le direzioni, e quindi i costi di comunicazione sono proporzionali alla dimensione delle modifiche, non alla dimensione dei dati.
Laversione 1.1 (distribuita il 29 settembre 2004) ha aggiunto le seguenti caratteristiche, fra le altre:
I messaggi dei programmi sono internazionalizzati.
I link simbolici sono sotto controllo versione.
Viene supportato un nuovo formato opzionale delrepository, FSFS, che non fa uso di un gestore di database, ma memorizza le revisioni direttamente nelfile system.
Laversione 1.2 (distribuita il 21 maggio 2005) ha aggiunto le seguenti caratteristiche:
Laversione 1.3 è stata distribuita il 30 dicembre 2005.
Laversione 1.4 è stata distribuita il 10 settembre 2006.
Laversione 1.5 è stata distribuita il 19 giugno 2008.
Laversione 1.6 è stata distribuita il 20 marzo 2009.
Laversione 1.7 è stata distribuita il 11 ottobre 2011.
Laversione 1.8 è stata distribuita il 18 giugno 2013.
Laversione 1.9 è stata distribuita il 5 agosto 2015.
Laversione 1.10 è stata distribuita il 13 aprile 2018.
Laversione 1.11 (distribuita il 11 gennaio 2019) ha aggiunto le seguenti caratteristiche:
Migliorato il supporto dello "shelving" (cioè la possibilità di mettere da parte delle modifiche locali senza effettuare il commit). Funzionalità sperimentale.
Migliorato il risolutore interattivo dei conflitti.
Ci sono molti altri sistemi di controllo versione, alcuni dei quali mirano a soddisfare gli stessi obiettivi di Subversion. Oltre al già citatoCVS, che è il predecessore di Subversion, meritano una citazione anchegit, creato daLinus Torvalds, eMercurial, scelto daGoogle per affiancare SVN inGoogle Code.[5]
Il progetto open sourceSVK è un sistema dicontrollo versione decentralizzato scritto inPerl, che permette di operare senza connessione a Internet e fornisce algoritmi avanzati per la riconciliazione (merging).
Il progetto open sourceJavaSVN.URL consultato il 23 giugno 2019(archiviato dall'url originale il 12 agosto 2005). è una libreria per client di Subversion scritta interamente in Java.