Subversion (svn) è un nuovo sistema per Version Control simile al vecchio, ma ottimo, CVS. L’ambizioso obiettivo di Subversion è di rimpiazzare CVS, strausato sopratutto nel mondo open source, andando a colmare i pochi difetti ancora presenti.
Le caratteristiche principali di Subversion sono:
- la sintassi dei comandi è abbastanza simile a CVS
- gestisce il controllo di versione anche sulle directory, sul rename e sui metadati
- il commit è realmente atomico
- si integra con Apache
- usa Berkeley DB
- gestisce in maniera migliore i file binari
- possibilità di eseguire dei comandi offline (status, diff, revert)
- esistono dei tools per convertire un reposiotry CVS in un repository Subversion
Il cambiamento sostanziale sta nella gestione dei tag e delle branch. Branch e tag sono viste come delle directory che contengono l’intero progetto, è per questo che la struttura tipica delle directory di un progetto è:
- project/branches/
- project/tags/
- project/trunk/
In conclusione Subversion sembra essere in grado di soppiantare CVS, anche Apache Fundation sta portando sempre più progetti nel nuovo repository, deve crescere ancora un po’, o meglio, si devono creare attorno a svn tutta quella serie di applicazione e integrazioni che ha ora CVS, ovvero: interface user friendly ed integrazione con i tools di sviluppo.
Esiste comunque già TortoiseSVN una comoda estensione gui per windows e Subclipse un plugin per Eclipse.



