1. Livres & vidéos
  2. Git
  3. Git et la gestion de versions
Extrait - Git Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques) (5e édition)
Extraits du livre
Git Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques) (5e édition) Revenir à la page d'achat du livre

Git et la gestion de versions

La gestion de versions

Un système de gestion de versions (VCS en anglais pour Version Control System ou aussi SCM pour Source Content Management), ou encore système de versionning, est un système qui enregistre toutes les modifications apportées à une liste de fichiers. C’est un système qui permet de suivre précisément l’évolution du contenu des fichiers. Ce type de système est très utilisé en développement informatique, mais il n’est pas limité à ce secteur puisque n’importe quelle activité utilisant des fichiers lisibles peut être suivie par un VCS. Par exemple, les systèmes Wiki (comme Wikipédia) utilisent un VCS. Il est également possible de citer le très connu site d’entraide informatique Stack Overflow qui suit les versions des questions et des réponses.

Le suivi des fichiers est effectué par la sauvegarde des modifications. En effet, lorsque vous avez fini de modifier un fichier, vous allez indiquer au VCS que vous avez terminé ce travail et pour quelles raisons vous l’avez fait. Les modifications effectuées sur le fichier seront sauvegardées par le système.

Il ajoutera alors une nouvelle ligne (qu’on appellera révision) dans votre historique. Le terme « révision » (appelé également commit...

Les intérêts de la gestion de versions

1. Une véritable machine à remonter le temps

Imaginez que vous êtes un indépendant. Lundi matin à 9 heures, un de vos clients vous appelle : « Vous deviez modifier mon site pour enregistrer tout ce que faisaient les utilisateurs du site. » Vous vous empressez de vous excuser et vous modifiez le code pour ajouter la fonctionnalité le plus rapidement possible. Une fois correctement réveillé - soit une heure et deux cafés plus tard -, vous vous rendez compte que vous n’êtes pas du tout parti dans la bonne direction. Le code que vous avez produit ne servira à rien et complexifie l’application alors qu’il y avait une manière beaucoup plus simple de faire. Votre VCS vous permet de revenir très simplement en arrière comme si ce début de lundi n’avait pas existé. Vous repartez donc avec un répertoire de travail propre.

Mais votre VCS va encore plus loin puisqu’il peut vous permettre de faire un retour en arrière de plusieurs années sans problème pourvu que vous l’ayez utilisé à ce moment-là.

Un système de versionning permet donc de revenir très facilement en arrière et à n’importe quel endroit de l’historique.

2. Une documentation détaillée et datée

Dans...

Histoire de la gestion de versions

1. Systèmes de gestion de versions locaux

Les systèmes à stockage local sont des systèmes où tous les utilisateurs partagent le même système de fichiers. Le système conserve les fichiers d’origine puis toutes les modifications effectuées par la suite. De cette manière, il est possible de restaurer les fichiers à n’importe quelle date pendant laquelle a été utilisé le VCS. Les systèmes à stockage local sont arrivés en 1972 grâce à SCCS (Source Code Control System) développé par Marc Rochkind qui travaillent alors pour les laboratoires Bell.

En 1982, au cours d’un projet universitaire, Walter F. Tichy publie GNU RCS (Revision Control System). RCS apportait un gain de performance important comparé à SCCS grâce à une autre manière de stocker les fichiers. En effet, RCS stockait les dernières versions des fichiers et la différence avec l’ancien fichier, ce qui permettait d’avoir la dernière version des fichiers plus rapidement.

Mais ce type de solution ne permettait pas aux collaborateurs de travailler ensemble s’ils n’utilisaient pas le même système de fichiers. La collaboration n’était pas aisée et ne permettait aucune mobilité. Avec ces systèmes, seuls les fichiers sont versionnés et ils possèdent chacun leur propre historique de version.

Après avoir été très utilisé dans le monde du libre, RCS a peu à peu été remplacé par CVS.

2. Systèmes de gestion de versions centralisés

Dans ce type de système, toutes les données du suivi de version sont stockées sur un serveur. À partir de ces systèmes, l’administrateur du VCS pouvait restreindre les privilèges de certains utilisateurs. Parmi les logiciels de gestion de versions centralisés, on peut retenir CVS (Concurrent Versions System) et Subversion (ou SVN). CVS est apparu en 1990. Il a été le premier à utiliser un système centralisé. Il a été très utilisé dans le monde du libre, puis remplacé par Subversion en 2000. Subversion est né de la volonté de l’entreprise...

Pourquoi Git ?

Tout d’abord, comme nous l’avons appris précédemment, Git est un système libre. Il ne peut donc pas y avoir de limitations contractuelles sur l’utilisation de Git. Quel que soit le nombre de collaborateurs, de projets ou de mises à jour, Git sera toujours gratuit.

Git possède aussi tous les avantages liés aux systèmes de gestion de versions décentralisés. C’est-à-dire qu’il est possible de travailler en mode déconnecté avec son dépôt tout en gardant des fonctionnalités avancées de collaboration lorsqu’on est connecté.

Git possède également un autre avantage important : sa performance. Git intègre beaucoup d’outils internes pour le rendre très performant (notamment pour l’utilisation des branches).

Un dernier avantage très important : Git est actuellement le système le plus populaire et il gagne en popularité chaque année. Il est difficile d’avoir des statistiques précises sur les systèmes de gestion de versions installés et utilisés dans les entreprises. Néanmoins, il est possible de juger de la popularité de certains termes utilisés lors de recherches Google grâce à Google Trends. Il est donc possible de prendre conscience du volume de recherches de certains mots-clés....