* Studio De Création Graphique Belfort
Studio De Création Graphique Belfort
Article:
Subversion (en abrégé svn) montre un logiciel de gestion de versions, disé sous licence Apache et BSD. Il a été imaginé pour remplacer CVS. Ses auteurs s'appuient intentionnellement sur les mêmes concepts (notamment sur le principe du dépôt centralisé et unique) et pensent 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 devenu manifestement un projet de la fondation Apache, prenant le nom d'Apache Subversion. Une des particularités de Subversion est qu'il ne fait aucune différenciation entre un label, une branche et un répertoire. Il s'agit d'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 rudes à graver. 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éconise 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 dissimilitude 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 transformé 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 se développe pas et il n'y a pas d'alternative qui fonctionne. Pour pallier ces manques l'ajout de « labels » ou « alias » a été recommandé 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.