* Designer Logo Belfort
Designer Logo Belfort
Article:
Subversion (en abrégé svn) fait office d'un logiciel de gestion de versions, disé sous licence Apache et BSD. 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 estiment que le modèle de CVS est bon, seule son adaptation est perfectible. Le projet a vu le jour 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 devenu de manière officielle un projet de la fondation Apache, prenant le nom d'Apache Subversion. Une des particularités de Subversion est qu'il ne fait aucune distinction entre un label, une branche et un répertoire. On voit une simple convention de nommage pour ses utilisateurs. Il devient ainsi très facile de confronter 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 ardus à 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 recommande 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. Tandis 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 distinction est 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 métamorphosé 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 impossibles : 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.