Gestion de versions

De EduTech Wiki
Aller à la navigation Aller à la recherche

Cet article est en construction: un auteur est en train de le modifier.

En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.



Introduction

La gestion de versions dans le milieu numérique se réfère au stockage de plusieurs versions d'un ou plusieurs fichiers afin de pouvoir tracer l'évolution chronologique à travers les changements apportés entre une version et l'autre. La gestion de versions peut s'appliquer à un fichier individuel, comme par exemple dans un document de texte, ou à plusieurs milliers de fichiers qui font partie du même projet. Elle peut s'appliquer au niveau individuel ou dans des groupes de travail. La gestion de versions est originairement utilisée surtout dans le milieu de la programmation et du développement informatique, mais elle s'utilise désormais de plus en plus aussi dans des contextes différents, comme par exemple l'écriture collaborative, le Data Science, la recherche, la conception et fabrication assistées par ordinateur, ou encore les processus de conception itératifs comme l'approche centrée utilisateur. La gestion de versions est également souvent à la base de plateformes collaboratives privées ou open source, comme par exemple GitHub ou GitLab.

Dans cet article, nous proposons un aperçu du fonctionnement de la gestion de versions surtout d'un point de vue conceptuel. Pour cette raison, nous incluons également des systèmes de gestion de versions plus simples comme le traçage des changements dans un document de texte ou l'historique des versions dans une page Wiki. Des systèmes de gestions plus complexes, comme par exemple Git, sont en effet une extension de principes de base relativement simple à comprendre, mais plus difficiles à implémenter et à maîtriser.

Objectifs

L'article à deux objectifs principaux :

  1. Introduire le concept de gestion de versions et sensibiliser des personnes sans un background informatique aux avantages d'adopter un mécanisme de ce type dans ses propres fluxes de travail ;
  2. Illustrer quelques exemples de gestion de versions et des logiciels qui peuvent être utilisés pour les implémenter.

Prérequis

Aucun prérequis technique n'est nécessaire pour suivre le contenu de l'article.

Pensée computationnelle en sciences sociales

Cet article partage la perspective et le public cible des ressources à propos de la pensée computationnelle en sciences sociales, mais peut être lu de manière indépendante des parcours guidés proposés dans ce contexte.

Principes conceptuels de la gestion de versions

Très probablement, vous avez déjà fait de la gestion de versions. En effet, il suffit d'avoir créé une fois une copie d'un fichier dans l'optique de pouvoir le récupérer dans un deuxième moment, par exemple parce que vous allez essayer quelque chose de nouveau sur le fichier original. Cette pratique peut se répéter plusieurs fois et a souvent comme résultat une arborescence de fichiers du style :

mon_document.docx
mon_document2.docx
mon_document_revue.docx
mon_document_revue2.docx
mon_document_final.docx

Fondamentalement, la gestion de versions est une optimisation de cette démarche. Elle permet de mieux structurer le traçage des changements afin qu'on puisse se déplacer entre une version et l'autre. Idéalement, en effet, tous les changements concernent le fichier d'origine mon_document.docx. Les autres fichiers sont des spin-off créés pour différentes raisons, mais ils partagent avec le document d'origine la même finalité sémantique. La gestion de versions consiste donc à incorporer plusieurs versions du même fichier dans une seule référence. Nous verrons plus bas que ce mécanisme peut se faire de deux manières principales :

  • L'historique des versions est inclut dans le fichier lui-même et géré normalement par le même logiciel qui est utilisé pour manipuler le contenu du fichier (e.g. logiciel de traitement de texte, d'édition d'image, ...) ;
  • L'historique des versions est géré par un outil externe, qui permet de tracer plusieurs fichiers - et plusieurs types de fichiers différents - en même temps.

Différences avec le backup

Différences avec la synchronisation des fichiers

Principes techniques de la gestion de versions

La gestion de versions peut sembler varier beaucoup en fonction du type de fichier et du logiciel qui est utilisé pour la mettre en oeuvre, mais en réalité le processus sous-jacent est basé sur le même principe fondamental : un fichier est une référence à de l'information qui est physiquement stockée dans la mémoire d'un dispositif individuel ou d'un serveur collectif. Lorsque cette information change, le fichier est modifié : la référence pointe maintenant à de l'information qui, physiquement, est stockée de manière différente par rapport à la version précédente.

Par exemple, si vous ajoutez des lignes à un fichier de texte, l'information associée au nom de votre fichier augmente, c'est-à-dire qu'elle occupe une partie plus étendue de la mémoire. Au contraire, si vous effacez des lignes, votre nom de fichier pointe vers une portion plus réduite de l'information. Même dans le cas où vous gardez la même longueur des lignes, mais vous changez quelques lettres, la manière dont votre information est encodée dans la mémoire se modifie, et votre nom de fichier pointe donc à de l'information qui est physiquement différente de la version précédente.

Par conséquent, un système de gestion de versions a comme objectif de pouvoir retracer des modifications physiques dans la mémoire et associer ces changements au même fichier ou ensemble de fichiers, sans avoir à créer des nouvelles références (i.e. des fichiers avec des noms différents) à chaque passage.

Fonctions principales de la gestion de versions

Exemples de gestion de versions

Conclusion

Ressources