Gestionnaire de Versions

De Ensiwiki
Aller à : navigation, rechercher

Un gestionnaire de versions est un outil permettant le travail collaboratif (plusieurs personnes travaillant en parallèle sur un même ensemble de fichiers), ainsi qu'un archivage de toutes les versions successives du projet.

Spécifique EnsimagVous apprendrez à en utiliser un (Git à l'heure où ceci est écrit) en milieu de 1A, puis en projet Génie Logiciel, en 2A, mais vous êtes encouragés à apprendre par vous mêmes bien avant !


Nous vous encourageons à essayer les différents tutoriels disponibles sur le Wiki ou de manière plus vaste, sur Internet. Il existe aussi, pour la plupart, des clients Windows.

Il existe deux principales classes de gestionnaires de versions : ceux ayant un stockage centralisé (une arborescence de répertoire de référence) et ceux ayant un stockage distribué qui permettent de travailler plus facilement séparément.

  • Stockage centralisé :
    • Subversion (alias SVN) : Il est relativement simple et assez diffusé pour être devenu plus ou moins le standard des gestionnaires de versions centralisés.
    • CVS : Le prédécesseur de SVN était CVS. Il est encore assez utilisé, mais il a quelques sérieuses limitations. Pour information, CVS avait supplanté RCS qui lui remplaçait SCCS. SVN étant à la fois plus simple et plus puissant que CVS, il n'y a plus vraiment de bonne raison autre que l'habitude de rester sous CVS aujourd'hui.
  • Stockage distribué : Ils sont tous plus récents que les précédents. Ils offrent une facilité à travailler séparément. Ils mettent aussi plus l'accent sur la facilité de fusion des différentes variantes. Les deux premiers sont probablement les plus utilisés actuellement :
    • Git : Utilisé pour le développement de certains projets d'envergure comme Linux, GNOME ou Freedesktop.org. Il est conçu pour être, avant tout, rapide. Un tutoriel Git est disponible sur le Wiki.
    • Mercurial : Très utilisé par quelques projets importants comme Mozilla, OpenSolaris, Xine ou Globulation 2.
    • Bazaar : Il est notamment supporté et utilisé par la distribution Linux Ubuntu.
    • Darcs : Utilise une théorie de patch relativement poussée.
    • Monotone : Utilise un protocole standardisé (netsync) pour les échanges. C'était un des premiers gestionnaires de versions décentralisé, il a beaucoup inspiré Git et Mercurial, mais n'est plus très utilisé de nos jours.