Subversion (en abrégé svn) est un logiciel de gestion de versions, distribué sous licence Apache. Il a été conçu pour remplacer CVS. Ses auteurs s'appuient volontairement sur les mêmes concepts (notamment sur le principe du dépôt centralisé et unique) et considèrent que le modèle de CVS est bon, seule son implémentation est perfectible.
Subversion fonctionne donc sur le mode client-serveur, avec :
un serveur informatique centralisé et unique où se situent :
les fichiers constituant la référence (le « dépôt » ou « référentiel », ou « en » en anglais),
un logiciel serveur Subversion tournant en « tâche de fond » ;
des postes clients sur lesquels se trouvent :
les fichiers recopiés depuis le serveur, éventuellement modifiés localement depuis,
un logiciel client, sous forme d'exécutable standalone ( SmartSVN) ou de plug-in ( TortoiseSVN, Eclipse Subversive) permettant la synchronisation, manuelle et/ou automatisée, entre chaque client et le serveur de référence.
Le projet a été lancé en par CollabNet, avec l'embauche par Jim Blandy de Karl Fogel, qui travaillait déjà sur un nouveau logiciel gestionnaire de version.
Le , Subversion est devenu officiellement un projet de la fondation Apache, prenant le nom dApache Subversion.
Subversion a été écrit afin de combler certains manques de CVS.
Voici les principaux apports :
les commits, ou publications des modifications sont atomiques. Un serveur Subversion utilise de façon sous-jacente une base de données capable de gérer les transactions atomiques (le plus souvent Berkeley DB) ;
Subversion permet le renommage et le déplacement de fichiers ou de répertoires sans en perdre l'historique ;
les métadonnées sont versionnées : on peut attacher des propriétés, comme les permissions, à un fichier, par exemple.
Du point de vue du simple utilisateur, les principaux changements lors du passage à Subversion, sont :
les numéros de révision sont désormais globaux (pour l'ensemble du dépôt) et non plus par fichier : chaque commit'' a un numéro de révision unique, quels que soient les fichiers touchés.