* Creation Depliant Belfort
Creation Depliant Belfort
Article:
Subversion (en abrégé svn) symbolise un logiciel de gestion de versions, disé sous licence Apache et BSD. Il a été conçu pour remplacer CVS. Ses auteurs se fondent 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. Le projet a été lancé en février 2000 par CollabNet, avec l'embauche par Jim Blandy de Karl Fogel, qui travaillait déjà sur un nouveau gestionnaire de version. Le 14 février 2010, SVN est perçu officiellement un projet de la fondation Apache, prenant le nom d'Apache Subversion. Une des particularités de Subversion est qu'il ne fait aucune séparation entre un label, une branche et un répertoire. C'est une simple convention de nommage pour ses utilisateurs. Il devient ainsi très facile de comparer un label et une branche ou autre croisement. Quel que soit le système de gestion de versions, les numéros de révision à plusieurs chiffres sont difficiles à mémoriser. Pour cette raison de nombreux systèmes laissent l'utilisateur définir des tags comme des synonymes plus faciles à retenir. Mais ce que Subversion prône d'utiliser comme tag est d'une nature complètement différente : une fois la commande svn copy effectuée, un tag Subversion ne se rappelle absolument plus de quel numéro de révision il provient. Alors que dans la plupart des autres systèmes un tag est une référence, un « tag » Subversion n'est qu'une copie. Seules quelques références prédéfinies sont disponibles : HEAD, PREV, BASE, COMMITTED. Une autre différence reste que les tags des autres systèmes sont des points dans le temps, alors que Subversion recommande de définir les tags comme des points dans l'espace du système de fichiers. Cette absence de tag au sens habituel rend certaines opérations un peu moins pratiques dans Subversion. Par exemple retrouver ce qui a modifié d'un tag à l'autre dans un fichier est un petit peu plus compliqué que de lancer une simple commande : svndiff -r tag1:tag2 monfichier dans le répertoire de travail. D'autres opérations deviennent utopiques : par exemple une commande telle que svn log -r tag1:tag2 monfichier ne fonctionne pas et il n'y a pas d'alternative qui fonctionne. Pour pallier ces manques l'ajout de « labels » ou « alias » a été proposé sur les listes de discussions de SVN2. Ces labels seraient équivalents aux tags d'autres systèmes comme CVS, git ou autre. En 2010 cette suggestion n'a pas dépassé le stade de la discussion.