Gestion de versions
Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

La gestion de version (en anglais revision control) est une activité qui consiste à maintenir l'ensemble des versions d'un logiciel. Essentiellement utilisée dans le domaine de la création de logiciels, elle est surtout concernée par le code source ; mais elle peut être utilisée pour tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) type de document (Dans son acception courante un document est généralement défini comme le support physique d'une information.) informatique (L´informatique - contraction d´information et automatique - est le domaine d'activité scientifique, technique et industriel en rapport avec le traitement automatique de l'information par des...).

Cette activité (Le terme d'activité peut désigner une profession.) étant fastidieuse et relativement complexe, un appui logiciel (En informatique, un logiciel est un ensemble d'informations relatives à des traitements effectués automatiquement par un appareil informatique. Y sont inclus les instructions de traitement, regroupées sous...) est presque indispensable. À cet effet, il existe différents logiciels de gestion de version (La gestion de version (en anglais revision control) est une activité qui consiste à maintenir l'ensemble des versions d'un logiciel. Essentiellement utilisée dans le domaine de la création de logiciels, elle est surtout...) qui, bien qu'ayant des concepts essentiels communs, apportent chacun son propre vocabulaire et ses propres usages. À titre d'exemple, on trouve un mécanisme de gestion de version (La gestion de version (en anglais revision control) est une activité qui consiste à maintenir l'ensemble des versions d'un logiciel. Essentiellement...) dans Wikipedia : pour chaque article, l'historique est disponible en cliquant sur le lien Historique.

Les versions

Les logiciels évoluant, chaque étape d'avancement est appelée version. Les différentes versions sont nécessairement liées à travers des modifications.

Une modification peut correspondre à des ajouts, modifications, suppressions ou une combinaison (Une combinaison peut être :) des trois sur une version donnée (Dans les technologies de l'information, une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction, d'un événement, etc.). Schématiquement, on passera de la version N à la version N + 1 en appliquant une modification M. Un logiciel de gestion de versions nous aidera alors à soustraire la modification M à la version N + 1 pour retrouver la version N.

Les concepteurs du logiciel de gestion de versions CVS ont choisi de parler de " révisions " (revisions) afin de ne pas confondre la version du logiciel avec les " révisions " de ses fichiers sources.

Pour des raisons pratiques, on associe généralement un " numéro " à une version (voir Version d'un logiciel).

Modifications et ensemble (En théorie des ensembles, un ensemble désigne intuitivement une collection d’objets (les éléments de l'ensemble), « une...) de modifications

Une modification constitue donc l'évolution entre deux versions. On peut donc aussi bien parler de la différence entre deux versions que de modification ayant amené à une nouvelle version.

On utilise généralement la gestion de version à un ensemble de fichiers qui constitue un projet (Un projet est un engagement irréversible de résultat incertain, non reproductible a priori à l’identique, nécessitant le concours et l’intégration d’une grande diversité...). De ce fait, il est courant de parler de modification pour un seul fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un bâtiment, une base de données informatique. Par exemple : ...) et d'ensemble de modifications (change set) lorsqu'il s'agit du projet (et donc de plusieurs fichiers). En effet, les deux n'évoluent pas au même rythme.

Pour illustrer, prenons l'exemple d'un logiciel nommé " Toto ". Il est constitué des fichiers A, B et C. À la version 1.0 de " Toto " correspondent les versions 1.0 de chacun des fichiers. Admettons que l'ajout d'une fonctionnalité à " Toto " impose la modification de A et de C. Présentons la situation (En géographie, la situation est un concept spatial permettant la localisation relative d'un espace par rapport à son environnement proche ou non. Il inscrit un lieu dans un cadre plus général afin de le qualifier à...) à l'aide d'un tableau (Tableau peut avoir plusieurs sens suivant le contexte employé :)

versions de " Toto " versions de A versions de B versions de C
1.0 1.0 1.0 1.0
1.1 1.1 1.1

Du point (Graphie) de vue (La vue est le sens qui permet d'observer et d'analyser l'environnement par la réception et l'interprétation des rayonnements lumineux.) du projet, les modifications apportées à A et à C font partie du même ensemble.

Branches

Des modifications divergentes peuvent intervenir sur un ensemble de fichiers. On parle alors de branches. Parfois il s'agit aussi de faire converger des branches. On parle alors de fusion (En physique et en métallurgie, la fusion est le passage d'un corps de l'état solide vers l'état liquide. Pour un corps pur, c’est-à-dire pour une substance constituée de molécules toutes identiques, la fusion s'effectue à température...) de branches.

Les branches sont utilisées pour permettre :

  • la maintenance d'anciennes versions du logiciel (sur les branches) tout en continuant le développement des futures versions (sur le tronc) ;
  • le développement parallèle de plusieurs fonctionnalités volumineuses sans bloquer le travail quotidien sur les autres fonctionnalités.

Conflit de modifications

Dans le cas d'une gestion de version en équipe, chacun travaille de façon indépendante, donc sur des branches de versions différentes. Les fusions régulières sont nécessaires à un avancement global du logiciel.

Il n'est pas rare que, suite à une mauvaise communication (La communication concerne aussi bien l'homme (communication intra-psychique, interpersonnelle, groupale...) que l'animal (communication intra- ou inter- espèces) ou la machine (télécommunications, nouvelles technologies...), ainsi que leurs...) au sein de l'équipe, certaines modifications soient contradictoires (par exemple lorsque deux personnes ont apporté des modifications différentes à la même partie d'un fichier). On parle alors de conflit (de modifications) puisque le logiciel de gestion de version n'est pas en mesure de savoir laquelle des deux modifications appliquer.

Systèmes centralisés et décentralisés

CVS et Subversion sont des logiciels centralisés, ce qui veut dire qu'il n'existe qu'un seul dépôt des fichiers, dépôt qui fait référence. Cela peut simplifier le modèle mais cela est contraignant pour certains usages (travail sans connexion au réseau (Un réseau informatique est un ensemble d'équipements reliés entre eux pour échanger des informations. Par analogie avec un filet (un réseau est un « petit rets », c'est-à-dire un...) ou tout simplement travail sur des branches expérimentales ou bien contestées).

Il existe donc également des logiciels décentralisés comme Mercurial ou darcs (darcs est un système de gestion de versions, qui sert donc à garder trace des versions successives d'un ensemble de fichiers (par exemple des sources d'un programme).). Avec ceux-ci, il existe plusieurs dépôts dont aucun n'a de statut privilégié.

Fonctionnalités notoires des logiciels de gestion de version

Étiquetage ou marquage

Cela consiste à associer un nom à une version donnée. Pour certains outils de gestion de version (comme CVS) qui gèrent les versions à une faible granularité (beaucoup de modifications non significatives), c'est un moyen de retrouver facilement une version significative.

Comparaison

Il est possible de comparer plusieurs versions pour en extraire les modifications.

Verrouillage et notifications

Pour le travail en équipe, certains logiciels de gestion de version apportent des outils pour communiquer.

Par exemple, le verrouillage permet d'interdire la modification d'un fichier, tandis que la notification émet un avertissement à tous les autres membres lorsqu'un fichier est modifié.

Exemples de logiciels de gestion de version

Les logiciels de contrôle (Le mot contrôle peut avoir plusieurs sens. Il peut être employé comme synonyme d'examen, de vérification et de maîtrise.) de version sont nombreux. Sous UNIX il y a eu SCCS qui a suscité un logiciel libre (Un logiciel libre est un logiciel dont l'utilisation, l'étude, la modification, la duplication et la diffusion sont universellement autorisées sans contrepartie financière. Les droits correspondant à ces...) alternatif : RCS (Revision Control System) qui est devenu un standard de fait. Comme RCS ne gérait que des fichiers individuels, nombre (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) de ses utilisateurs ont créé des surcouches gérant les arborescences de fichiers. Certaines de ces surcouches furent distribuées librement. Il en fut ainsi de PRCS et de CVS. CVS est devenu extrêmement répandu dans le monde (Le mot monde peut désigner :) du logiciel libre sur Internet (Internet est le réseau informatique mondial qui rend accessibles au public des services variés comme le courrier électronique, la messagerie instantanée et le World Wide Web, en utilisant le...), mais aussi dans les entreprises. CVS est simple à mettre en œuvre et offre les fonctionnalités fondamentales qu'attendent ses utilisateurs.

Mais l'histoire des logiciels de contrôle de version ne s'arrête pas en 2006 et de nouveaux logiciels libres concurrencent CVS, comme par exemple Subversion, SVK, darcs, mercurial et GNU (GNU est un système d'exploitation composé exclusivement de logiciels libres.) Arch.

Dans le monde propriétaire, ClearCase (de IBM), Synergy/CM (de Telelogic) et Serena Dimensions (Dans le sens commun, la notion de dimension renvoie à la taille ; les dimensions d'une pièce sont sa longueur, sa largeur et sa profondeur/son épaisseur, ou bien son diamètre si c'est une pièce de...) (de Serena) sont les plus répandus. Visual Source Safe (de Microsoft) est largement utilisé aussi, notamment du fait de son intégration avec l'outil (Un outil est un objet finalisé utilisé par un être vivant dans le but d'augmenter son efficacité naturelle dans l'action. Cette augmentation se traduit par la...) de développement Visual Studio (Microsoft Visual Studio est une suite de logiciels de développement pour Windows conçu par Microsoft. La dernière version s'appelle Visual Studio 2010.), malgré de nombreuses lacunes et des mises à jour (Le jour ou la journée est l'intervalle qui sépare le lever du coucher du Soleil ; c'est la période entre deux nuits, pendant laquelle les rayons du...) peu fréquentes. En 2006, Microsoft (Microsoft Corporation (NASDAQ : MSFT) est une multinationale américaine de solutions informatiques, fondée par Bill Gates et Paul Allen, dont le revenu annuel a...) lance une nouvelle famille d'outils de développement et de gestion de configuration (La gestion de configuration consiste à gérer la description technique d'un système[1] (et de ses divers composants), ainsi qu'à gérer l'ensemble des modifications apportées au cours de l'évolution du système. La...) logicielle sous le nom de Team Suite et Team Foundation Server. Cette suite qui s'appuie sur Visual Studio 2005 intègre entre autres un nouveau logiciel de gestion de version plus complet et ambitieux que Visual Source Safe.

Page générée en 0.121 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique