Un logiciel de gestion de version c’est quoi exactement? Comme son nom l’indique, c’est un logiciel qui permet de créer et de gérer les différentes versions de fichiers. Les logiciels de gestion de versions sont surtout utilisés dans le développement logiciel pour conserver l’historique du code source et travailler plus facilement en équipe.
Définition
Un logiciel de gestion de versions ou VCS en anglais (version control system) est un logiciel qui permet de stocker un ensemble de fichiers en conservant la chronologie de toutes les modifications qui ont été effectuées dessus.
Pour faire une analogie parlante, imaginez qu’un logiciel de gestion de version est un outil qui fait des photos de votre code source à des moments souhaité, puis il indique au verso de votre photo le numéro de version du code source. Enfin il range soigneusement cette photo dans un classeur chronologique affin de facilement retrouver le code source de votre projet comme il était à la version demandé.
Historique
Avant les outils de gestion de version
Avant l’arrivé des outils de gestion de version, pour faire des sauvegardes des différentes versions de ses fichiers, nous étions obligés de faire un copier coller du dossier complet du projet et de le renommer pour y ajouter la mention du numéro de version.
L’avantage, c’est que cela ne demandait pas l’utilisation d’outils. En revanche, c’était très lourd en terme d’espace mémoire et de temps (dupliquer les fichiers). L’autre inconvénient, c’est qu’il était très difficile de partager ces fichiers avec d’autres personnes et encore plus de travailler en équipe sur les mêmes fichiers.
Pour finir, avec cette méthode, il n’y avait pas d’informations (metadatas) sur les évolutions des fichiers entre deux versions. Comme par exemple:
- La date de modification
- Le nom de la personne qui a fait ces modifications
- Pourquoi avoir fait ces modifications
- Et plus encore
Or toutes ces informations sont très importantes, surtout dans le monde du développement logiciel !
Pour remédier à ces problèmes, nous avons commencés a utiliser des bases de données pour enregistrer les différentes version des fichiers. Ainsi, on pouvait avoir une logique entre les différentes version de nos fichiers et on pouvais ajouter, a nos modifications, les informations supplémentaires via la base de donnée (date, auteur, …)
Gestion de version centralisé
De nos jours il existe deux grande famille de gestionnaire de version. La première a voir vue le jour: la gestion dite centralisé. On peut citer par exemple en libre:
On dit de ces outils qu’il sont centralisés car l’historique complet, est hébergé sur un serveur. Les développeurs qui souhaitent travailler sur le projet peuvent alors récupérer une version donné en local sur leur PC ou alors enregistrer une nouvelle version sur le serveur.
Ce système centralisé améliore encore la gestion de version, en permettant très simplement de créer ou récupérer une version dans l’historique, en facilitant le travail en équipe sur un même projet et en suivant plus simplement l’historique du projet.
Mais il y a tout de même un inconvénient au système centralisé. Les développeurs doivent forcément avoir un accès au serveur pour faire des enregistrements de version ou pour revenir à une ancienne version du projet. De plus si le serveur perd les données, tout l’historique du projet disparaît aussi.
Gestion de version décentraliser
Pour remédier à ce dernier problème, nous avons créé la gestion décentralisé. Comme vous vous en doutez surement, cette fois ci, l’historique n’est plus centralisé sur une seule et même machine.
Il peut toujours y avoir un serveur de référence, mais cette fois-ci, chaque développeur vas dupliquer l’intégralité de l’historique présente sur le serveur. Ainsi, si il a besoins de revenir a une version antérieur du code source, il n’a pas besoin d’avoir un accès au serveur distant. De plus si il souhaite enregistrer de nouvelles versions dans son historique, il peut le faire en local sur sa machine. Plus tard, il pourra se synchroniser avec le serveur de référence pour y ajouter ses modifications et récupérer celle des autres membres de son équipe.
Dans ces outils de gestion de version décentralisé, on peut citer Mercurial, Bazaar ou encore le plus populaire Git
Utilisation des gestionnaires de version
De nos jours, il est clairement indispensable de savoir utiliser la gestion de version lorsque l’on travail dans le domaine du logiciel. Comme nous l’avons vue, il en existe de très nombreux. Mais si vous deviez en choisir qu’un seul, je vous conseillerais plutôt Git
Git est un logiciel de gestion de version décentralisé parmi les plus populaires avec 12 000 000 d’utilisateurs dans le monde. C’est un logiciel libre créé par Linus Torvalds, auteur du noyau Linux. Git est donc totalement gratuit.
Et maintenant?
Vous souhaitez apprendre à utiliser Git? Je vous conseil soit un bon livre ou encore mieux une bonne formation vidéo.
Voici ma petite sélection:
Pour ceux qui, comme moi, préfèrent une bonne formation vidéo avec plus de pratique que de théorie: Formation Vidéo
Pour les amoureux des livres
Sinon, La documentation officielle.
Recevez gratuitement votre fiche de synthèse sur l’outils Git
Vous trouverez dans ce document un condensé des commandes les plus utilisées avec à chaque fois une petite description de celle-ci.
En bonus, j’ai ajouté à la fin du document un schéma qui résume les différents workflows d’utilisation de ces commandes.
Votre email restera confidentielle, zéro spam.