Exposé 3
Exposé 3
Exposé 3
• Les outils de versionning ont pour mission de modifier des documents voire des fichiers. Ils sauvegardent
dans une archive toutes les versions créées comprenant les horodatages ainsi que les identifiants uniques, de
sorte que les anciennes données peuvent à tout moment être chargées voire restaurées. Par conséquent, le but
est de déterminer l’identité de l’utilisateur qui a procédé à des modifications à un moment T. Les objectifs
d’un tel système sont, d’un côté, de coordonner l’accès commun de plusieurs utilisateurs à des fichiers et,
de l’autre, de permettre le développement simultané de plusieurs branches (celle du développement ou bien
du détachement).
• En règle générale, les systèmes de versionning interviennent dans le développement de logiciels et dans les
systèmes de gestion de contenus dans le cadre professionnel. On compte, dans les outils de versionning les
plus connus, Apache Subversion (SVN) mais également Git. Il est possible de les installer soit sur son propre
serveur soit de les louer via un hébergeur. GitHub est le service d’hébergement basé sur le web le plus connu
pour les projets Git. En ce qui concerne Subversion, on peut citer le site RiouxSVN. Les services tels que
SourceForge hébergent les deux systèmes.
SVN : le successeur CVS de CollabNet
C’est au début des années 2000 que le logiciel libre Subversion a commencé son développement pour enfin
sortir sa version complète quatre années plus tard. C’est ainsi que DVN a succédé à son modèle CVS (sigle
de Concurrent Versions System). En 2009, le projet a changé pour la Apache sofware Foundation, d’où provient
le nom du fameux outil Apache Subversion.
• SVN repose sur un système de versionning centralisé. Cela signifie qu’un seul répertoire général existe et
tous les utilisateurs y ont accès. Etant donné que les modifications ne peuvent être fusionnées, le système
empêche que deux utilisateurs modifient un même fichier simultanément. Ce dernier est attribué au premier
internaute qui l’ouvre et il reste protégé des autres utilisateurs tant qu’il n’a pas été fermé. Apache Subversion
permet également de charger et de modifier les sous-chemins indépendamment du reste de l’arborescence.
C’est ainsi que les droits de lecture et d’écriture sont affectés pour la totalité des chemins aux différents
utilisateurs. En outre, Suversion se caractérise par le fait que des répertoires vides, renommés voire déplacés
peuvent être enregistrés sans causer de perte dans l’historique.
Git : la solution d’urgence du développeur du noyau Linux
• Le créateur de Linux Linus Thorvalds a commencé le développement d’un nouveau logiciel de versionning en
avril 2005. Il y était plus ou moins forcé. La raison de ce rebondissement était que les développeurs du noyau
Linux avaient perdu leur accès gratuit du fait d’une modification de la licence du système BitKeeper. Le
nouveau système avait pour but de présenter les même flux de travail que BitKeeper et de protéger contre les
modifications délibérées ou accidentelles. Par ailleurs, son efficacité était bien supérieure. C’est seulement après
seulement quelques jours que Thorvalds présentait la première version de Git.
• Derrière Git se cache un système de versionning décentralisé. Il existe un dépôt (de l’anglais repository) dans
lequel tous les changements sont incorporés et qui permet aux utilisateurs d’y télécharger leurs propres copies de
travail. Ils disposent également d’un dépôt complet qui comprend l’historique local sans qu’ils n’aient besoin
d’une connexion permanente au réseau. Par ailleurs, les modifications sont transférées rapidement dans le dépôt
principal. En conséquence, Git ne propose pas de système de verrouillage mais permet à tous les utilisateurs de
créer leurs propres branches qui seront ensuite téléchargées dans le dépôt principal. Chaque utilisateur dispose
par ailleurs des droits de lecture et d’écriture standards pour tout le répertoire. S’il existe d’autres droits, d’autres
répertoires principaux doivent alors être définis. Chaque copie de travail est une sauvegarde individuelle du
répertoire principal, ce qui présente un avantage au cas où celui-ci tombe en panne ou est abîmé. Git ne définit
que les contenus des répertoires, c’est pourquoi les répertoires vides sont automatiquement supprimés.
SVN et Git : comparaison directe des systèmes
Quel outil faut-il choisir entre SVN et Git ? La réponse n’est pas aussi simple et reste liée à vos objectifs. Les
deux systèmes se distinguent de par leurs structures et leurs procédures de travail. Le tableau suivant illustre
les oppositions majeures qui existent entre les deux outils
SVN Git