Gestion de configuration Gestion de versions L’outil Subversion >

La gestion de configuration — Suivre l’´evolutionde son produit tout en travaillant en ´equipe

Jean-Yves Didier

Universit´ed’Evry-Val d’Essonne

Jean-Yves Didier La gestion de configuration 1/42 Gestion de configuration Gestion de versions L’outil Subversion >

1 Gestion de configuration

2 Gestion de versions G´en´eralit´es Concepts

3 Subversion : un outil de gestion de version Fonctionnement g´en´eral D´eploiementde subversion

Jean-Yves Didier La gestion de configuration 2/42 Gestion de configuration Gestion de versions L’outil Subversion >

Probl´ematique

Questions classiques • O`use trouve la derni`ereversion en cours de d´eveloppement ? • Quelle version a ´et´evalid´eeet a ´et´efabriqu´ee? • Comment d´efinirun r´ef´erentielcommun entre tous les acteurs d’un projet ?

R´esolutiondes probl`emessuivants • La duplication des donn´eesnum´eriques; • La gestion des it´erationset des versions ; • La gestion des configurations ; • La cr´eationd’un r´ef´erentiel; • Le contrˆolede l’acc`esaux donn´ees.

Jean-Yves Didier La gestion de configuration 3/42 Gestion de configuration Gestion de versions L’outil Subversion >

Gestion de configuration (1/3)

D´efinition: Gestion de configuration • Instantan´edes caract´eristiquesfonctionnelles et physiques d’un syst`emecon¸cupour r´epondre `aun ensemble d’exigences • Ensemble des activit´es,manuelles ou automatis´ees, permettant d’identifier et de d´efinirles articles de configuration d’un syst`eme et toutes leurs relations ;

D´efinition: Article de configuration • Ensembles et sous-ensembles du syst`emequi remplissent une fonction int´eressantles utilisateurs ; • Tout article (document papier, logiciel ou mat´eriel),contenant des informations n´ecessaires`ala r´ealisationd’un projet ou au suivi de cette derni`ere.

Jean-Yves Didier La gestion de configuration 4/42 Gestion de configuration Gestion de versions L’outil Subversion >

Gestion de configuration (2/3)

Caract´erisation • G`erela description technique d’un syst`emeet de ses divers composants (configuration) ; • G`erel’ensemble des modifications apport´eesau cours de l’´evolutiondu syst`eme; • Adapt´eaux syst`emescomplexes.

Contraintes sur les articles de configuration • Identifiables de mani`ereunivoque, localisable, archiv´es; • Description des relations de d´ependance entre articles de configuration dans leurs diff´erentesversions.

Jean-Yves Didier La gestion de configuration 5/42 Gestion de configuration Gestion de versions L’outil Subversion >

Gestion de configuration (3/3)

Secteurs int´eress´es • Informatique ; • A´eronautique; • Automobile ; • Armement ; • ...

Jean-Yves Didier La gestion de configuration 6/42 Gestion de configuration Gestion de versions L’outil Subversion >

Processus affili´es`ala gestion de configuration

4 processus principaux 1 Identification :

I Inventaire, identification du p´erim`etreet des composants du syst`eme. 2 Maˆıtrisede la configuration :

I Coh´erencede l’ensemble des donn´ees de la configuration pendant la dur´eede vie du produit. 3 Enregistrement des ´etatsde la configuration :

I Maˆıtrisede l’´evolutionde la configuration et de ses constituants, conservation de l’historique. 4 Audit et revue :

I Ad´equationentre la configuration et les exigences formul´ees.

Jean-Yves Didier La gestion de configuration 7/42 Gestion de configuration Gestion de versions L’outil Subversion >

Enjeu ´economiquede la gestion de configuration

Le programme Airbus A380 2005 : Airbus annonce un d´elaidans la production des A380. Probl`eme : industrialisation des cˆablages`ainstaller dans l’appareil (530 km de cˆables); Cause : probl`emesd’interop´erabilit´esentre deux versions du mˆemelogiciel : Catia v4 (Espagne, Allemagne), Catia v5 (France, Angleterre) ; Cons´equences: • 18 mois de retard sur le programme ; • Surcoˆutdu programme : 4,8 milliards d’euros ; • P´enalit´esde retard, annulations de commandes.

Jean-Yves Didier La gestion de configuration 8/42 Gestion de configuration Gestion de versions L’outil Subversion >

Gestion de configuration et normalisation

Normes, r´ef´erentiels,recommandations IEEE 729-1983 IEEE Standard Glossary of Software Engineering Terminology (IEEE : Institute of Electrical and Electronics Engineers); ITILv3 (2011) Information Technology Infrastructure Library (R´ef´erentielde bonnes pratiques) ; ISO/IEC 20000:2011 IT Service Management System Standard ; IEEE 828-2012 IEEE Standard for Configuration Management in Systems and Software Engineering ; RG 000101-105 Recommandations g´en´eralesa´eronautiquesdu BNAE (Bureau de Normalisation de l’A´eronautique et de l’Espace) – 2010.

Jean-Yves Didier La gestion de configuration 9/42 Gestion de configuration Gestion de versions L’outil Subversion >

Liens entre gestion de configuration et informatique

3 utilisations majeures • Tracer les diff´erentesversions ou r´evisionsde toute information destin´ee`aˆetreutilis´ee par un syst`eme; • D´eployer les configurations `atravers un parc informatique sous forme de fichiers et donn´ees; • G´ererle code source de d´eveloppements informatiques.

Jean-Yves Didier La gestion de configuration 10/42 Gestion de configuration Gestion de versions L’outil Subversion >

1 Gestion de configuration

2 Gestion de versions G´en´eralit´es Concepts

3 Subversion : un outil de gestion de version Fonctionnement g´en´eral D´eploiementde subversion

Jean-Yves Didier La gestion de configuration 11/42 Gestion de configuration Gestion de versions L’outil Subversion >

Gestion de versions

D´efinition La gestion de versions consiste `amaintenir l’ensemble des versions d’un ensemble ou d’une arborescence de fichiers (Processus 3 de la gestion de configuration).

Applications • Suivi de l’´evolutionde la documentation technique ; • Gestion d’art´efactsinformatiques (fichiers CAO, etc.) ; • Gestion du code source d’une application ;

Un concept non limit´e`al’informatique Solidworks Entreprise PDM – Dassault Syst`emes. Probl´ematiquedes PLM.

Jean-Yves Didier La gestion de configuration 12/42 I Logiciel de contrˆolede version .

• Processus assist´epar la machine :

Rendre possible une telle cadence de production • Gestion manuelle impossible ;

Gestion de configuration Gestion de versions L’outil Subversion >

L’exemple du noyau

Version 3.2 (avril 2012) De la v 3.1 `ala v 3.2 (source : h-online.com) 1 400 000 lignes modifi´ees, 14 998 651 lignes de code, 200 000 lignes ajout´ees, 37 617 fichiers, 12 608 fichiers modifi´es, 7 800 d´eveloppeurs, 73 jours, 800 entreprises. 6 correctifs/heure.

Jean-Yves Didier La gestion de configuration 13/42 I Logiciel de contrˆolede version git.

Gestion de configuration Gestion de versions L’outil Subversion >

L’exemple du noyau Linux (Sujets sensibles au vertige s’abstenir)

Version 3.2 (avril 2012) De la v 3.1 `ala v 3.2 (source : h-online.com) 1 400 000 lignes modifi´ees, 14 998 651 lignes de code, 200 000 lignes ajout´ees, 37 617 fichiers, 12 608 fichiers modifi´es, 7 800 d´eveloppeurs, 73 jours, 800 entreprises. 6 correctifs/heure.

Rendre possible une telle cadence de production • Gestion manuelle impossible ; • Processus assist´epar la machine :

Jean-Yves Didier La gestion de configuration 13/42 Gestion de configuration Gestion de versions L’outil Subversion >

L’exemple du noyau Linux (Sujets sensibles au vertige s’abstenir)

Version 3.2 (avril 2012) De la v 3.1 `ala v 3.2 (source : h-online.com) 1 400 000 lignes modifi´ees, 14 998 651 lignes de code, 200 000 lignes ajout´ees, 37 617 fichiers, 12 608 fichiers modifi´es, 7 800 d´eveloppeurs, 73 jours, 800 entreprises. 6 correctifs/heure.

Rendre possible une telle cadence de production • Gestion manuelle impossible ; • Processus assist´epar la machine :

I Logiciel de contrˆolede version git.

Jean-Yves Didier La gestion de configuration 13/42 A. Bob et Alice effectuent ensemble les modifications `aapporter sur la partie `aAlice ; B. Bob effectue les modifications, les envoie `aAlice qui joue au jeu des 10 diff´erencessur les fichiers ; C. Bob et Alice utilisent un logiciel de contrˆolede version, donc Bob effectue les modifications et Alice en b´en´eficieen moins de 10 secondes sans que cela d´emolisseson travail ;

Gestion de configuration Gestion de versions L’outil Subversion >

Sc´enario

D´eveloppement en ´equipe Alice et Bob d´eveloppent de nouvelles fonctionnalit´espour un logiciel. Apr`ess’ˆetrepartag´esle travail, Bob s’aper¸coitque, pour que sa partie fonctionne, la partie d’Alice doit ˆetremodifi´eemais Alice a d´ej`acommenc´e`atravailler. Comment vont-ils s’y prendre ?

Jean-Yves Didier La gestion de configuration 14/42 B. Bob effectue les modifications, les envoie `aAlice qui joue au jeu des 10 diff´erencessur les fichiers ; C. Bob et Alice utilisent un logiciel de contrˆolede version, donc Bob effectue les modifications et Alice en b´en´eficieen moins de 10 secondes sans que cela d´emolisseson travail ;

Gestion de configuration Gestion de versions L’outil Subversion >

Sc´enario

D´eveloppement en ´equipe Alice et Bob d´eveloppent de nouvelles fonctionnalit´espour un logiciel. Apr`ess’ˆetrepartag´esle travail, Bob s’aper¸coitque, pour que sa partie fonctionne, la partie d’Alice doit ˆetremodifi´eemais Alice a d´ej`acommenc´e`atravailler. Comment vont-ils s’y prendre ?

A. Bob et Alice effectuent ensemble les modifications `aapporter sur la partie `aAlice ;

Jean-Yves Didier La gestion de configuration 14/42 C. Bob et Alice utilisent un logiciel de contrˆolede version, donc Bob effectue les modifications et Alice en b´en´eficieen moins de 10 secondes sans que cela d´emolisseson travail ;

Gestion de configuration Gestion de versions L’outil Subversion >

Sc´enario

D´eveloppement en ´equipe Alice et Bob d´eveloppent de nouvelles fonctionnalit´espour un logiciel. Apr`ess’ˆetrepartag´esle travail, Bob s’aper¸coitque, pour que sa partie fonctionne, la partie d’Alice doit ˆetremodifi´eemais Alice a d´ej`acommenc´e`atravailler. Comment vont-ils s’y prendre ?

A. Bob et Alice effectuent ensemble les modifications `aapporter sur la partie `aAlice ; B. Bob effectue les modifications, les envoie `aAlice qui joue au jeu des 10 diff´erencessur les fichiers ;

Jean-Yves Didier La gestion de configuration 14/42 Gestion de configuration Gestion de versions L’outil Subversion >

Sc´enario

D´eveloppement en ´equipe Alice et Bob d´eveloppent de nouvelles fonctionnalit´espour un logiciel. Apr`ess’ˆetrepartag´esle travail, Bob s’aper¸coitque, pour que sa partie fonctionne, la partie d’Alice doit ˆetremodifi´eemais Alice a d´ej`acommenc´e`atravailler. Comment vont-ils s’y prendre ?

A. Bob et Alice effectuent ensemble les modifications `aapporter sur la partie `aAlice ; B. Bob effectue les modifications, les envoie `aAlice qui joue au jeu des 10 diff´erencessur les fichiers ; C. Bob et Alice utilisent un logiciel de contrˆolede version, donc Bob effectue les modifications et Alice en b´en´eficieen moins de 10 secondes sans que cela d´emolisseson travail ;

Jean-Yves Didier La gestion de configuration 14/42 Gestion de configuration Gestion de versions L’outil Subversion >

Les logiciels (1/2)

Une pl´ethore de logiciels • Logiciels libres :

I RCS (1982), CVS (1986), subversion – SVN (2000); I (2002), bazaar (2005), (2005), git (2005). • Logiciels propri´etaires:

I Visual SourceSafe (1994), Microsoft ; I BitKeeper (1998), BitMover ; I Rational (2006), IBM.

Jean-Yves Didier La gestion de configuration 15/42 Gestion de configuration Gestion de versions L’outil Subversion >

Les logiciels (2/2)

Popularit´edes logiciels de contrˆolede version (en %)

subversion 46% git CVS mercurial 4% 1% bazaar 2% 39% autres 8%

(Source : openhub.net – octobre 2016)

Jean-Yves Didier La gestion de configuration 16/42 Gestion de configuration Gestion de versions L’outil Subversion >

La notion de d´epˆot et de copie locale

D´epˆot • Emplacement de stockage centralis´eet organis´ede donn´ees accessible par de multiples utilisateurs ; • En d´eveloppement informatique, la zone qui contient le code source de r´ef´erence.

Copie locale • Copie du d´epˆotsur laquelle le d´eveloppeur travaille en local ; • R´eguli`erementsynchronis´eeavec le d´epˆot.

Jean-Yves Didier La gestion de configuration 17/42 Gestion de configuration Gestion de versions L’outil Subversion >

Les types de logiciel de contrˆolede version

3 g´en´erations 1 local : d´epˆotsur un r´epertoire partag´e(RCS);

I Limite la taille du projet ; I D´eveloppement multi-sites ou multi-plate-formes (Windows/Unix/Mac) difficile ; 2 client-serveur : d´epˆotg´er´epar un serveur, copies locales ne contenant que la version courante de travail (CVS, SVN);

I Adapt´e`ades d´eveloppements lin´eaires; 3 d´ecentralis´e : d´epˆotg´er´epar un serveur, copies locales refl`etentl’int´egralit´edu d´epˆot(git, darcs, mercurial, bazaar);

I Travail plus facile hors connexion ; I Copies peuvent aussi servir de d´epˆot; I Encombrement de l’espace disque.

Jean-Yves Didier La gestion de configuration 18/42 Gestion de configuration Gestion de versions L’outil Subversion >

Arbre de versions et ´el´ementsde vocabulaire

D´efinitions 1 L´egende • tronc( , baseline, 2 tronc mainline) base du projet ; branche 3 arrˆet • branche( branch) d´erivation T1 4 ´etiquette dans l’histoire de l’´evolution 5 saut version des ´el´ements de fusion 6 configuration ; • ´etiquette( tag, label) 7 identification d’une 8 configuration particuli`ere; T2 9 • fusion( ) fusion de 10 deux branches de d´eveloppement.

Jean-Yves Didier La gestion de configuration 19/42 Gestion de configuration Gestion de versions L’outil Subversion >

Comparaison entre PDM et SCM (1/2)

D´efinitions PDM Product Data Management – partie du PLM ; SCM Software Configuration Management – gestion des logiciels.

Jean-Yves Didier La gestion de configuration 20/42 Gestion de configuration Gestion de versions L’outil Subversion >

Comparaison entre PDM et SCM (2/2)

Comparaison Fonctionnalit´e PDM SCM Mod´elisationproduit fort faible Gestion des processus fort faible Gestion documentaire fort faible Gestion de configuration fort fort Standardisation fort faible Ing´enierieconcurrente sur un fichier non oui Gestion de l’espace de travail non oui Gestion de l’assemblage non oui

Jean-Yves Didier La gestion de configuration 21/42 Gestion de configuration Gestion de versions L’outil Subversion >

Des concepts transpos´esdans d’autres domaines (1/2)

Exemple : Wikipedia • Articles ´ecritssous licence GFDL :

I GFDL = Gnu Free Documentation Licence ; I Impose un historique du document.

Jean-Yves Didier La gestion de configuration 22/42 Gestion de configuration Gestion de versions L’outil Subversion >

Des concepts transpos´esdans d’autres domaines (2/2)

Jean-Yves Didier La gestion de configuration 23/42 Gestion de configuration Gestion de versions L’outil Subversion >

Un concept non limit´e`ala gestion num´erique (1/2)

Documentation de l’historique des modifications Exemple tir´edu Guide du dessinateur industriel – A. Chevalier, Hachette Technique

Jean-Yves Didier La gestion de configuration 24/42 Gestion de configuration Gestion de versions L’outil Subversion >

Un concept non limit´e`ala gestion num´erique (2/2)

Cartouches de dessins techniques Exemple tir´edu Guide du dessinateur industriel – A. Chevalier, Hachette Technique

Jean-Yves Didier La gestion de configuration 25/42 Gestion de configuration Gestion de versions L’outil Subversion >

1 Gestion de configuration

2 Gestion de versions G´en´eralit´es Concepts

3 Subversion : un outil de gestion de version Fonctionnement g´en´eral D´eploiementde subversion

Jean-Yves Didier La gestion de configuration 26/42 Gestion de configuration Gestion de versions L’outil Subversion >

Subversion Synchronisation

Principe • D´epˆotcentralis´econtenant les versions (r´evisions)du logiciel ; • Copies locales de travail `asynchroniser p´eriodiquement avec le d´epˆot.

Op´erationsde synchronisation update : mise `ajour de la copie locale `apartir du d´epˆot; • B´en´eficierdu travail des autres ; • Sans ´ecraserle travail en cours en local ! : mise `ajour du d´epˆot`apartir de la copie locale • Faire b´en´eficieraux autres de son travail.

Jean-Yves Didier La gestion de configuration 27/42 • Changement de version ;

• Versionn sur la copie ; • Update ;

• Passage `ala versionn+1.

Certes, mais encore . . . Je le fais tous les jours avec un copier-coller de fichiers !

Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 1

      Cas simple Copie locale D´epˆot • Versionn sur le d´epˆot; n version

Jean-Yves Didier La gestion de configuration 28/42 • Versionn sur la copie ; • Update ;

• Passage `ala versionn+1.

Certes, mais encore . . . Je le fais tous les jours avec un copier-coller de fichiers !

Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 1

      Cas simple Copie locale D´epˆot • Versionn sur le d´epˆot;

n • Changement de version ;

version commit +1 n version

Jean-Yves Didier La gestion de configuration 28/42 • Update ;

• Passage `ala versionn+1.

Certes, mais encore . . . Je le fais tous les jours avec un copier-coller de fichiers !

Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 1

      Cas simple Copie locale D´epˆot • Versionn sur le d´epˆot;

n • Changement de version ;

n • Versionn sur la copie ;

version commit version +1 n version

Jean-Yves Didier La gestion de configuration 28/42 • Passage `ala versionn+1.

Certes, mais encore . . . Je le fais tous les jours avec un copier-coller de fichiers !

Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 1

      Cas simple Copie locale D´epˆot • Versionn sur le d´epˆot;

n • Changement de version ;

n • Versionn sur la copie ; version commit • Update ; version update +1 n version

Jean-Yves Didier La gestion de configuration 28/42 Certes, mais encore . . . Je le fais tous les jours avec un copier-coller de fichiers !

Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 1

      Cas simple Copie locale D´epˆot • Versionn sur le d´epˆot;

n • Changement de version ;

n • Versionn sur la copie ; version commit • Update ; version update • Passage `ala versionn+1. +1 synchronisation n version

Jean-Yves Didier La gestion de configuration 28/42 Certes, mais encore . . . Je le fais tous les jours avec un copier-coller de fichiers !

Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 1

      Cas simple Copie locale D´epˆot • Versionn sur le d´epˆot;

n • Changement de version ;

n • Versionn sur la copie ; version commit • Update ; version update • Passage `ala versionn+1. +1 synchronisation n +1 n version version

Jean-Yves Didier La gestion de configuration 28/42 Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 1

      Cas simple Copie locale D´epˆot • Versionn sur le d´epˆot;

n • Changement de version ;

n • Versionn sur la copie ; version commit • Update ; version update • Passage `ala versionn+1. +1 synchronisation n Certes, mais encore . . . +1 n Je le fais tous les jours avec un version copier-coller de fichiers ! version

Jean-Yves Didier La gestion de configuration 28/42 • Changement de version ;

• Versionn sur la copie ; • Travail sur la copie ; • Update ;

• Passage `ala versionn+1, tout en conservant les modifications !

Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 2

     

Copie locale D´epˆot Cas int´eressant • Versionn sur le d´epˆot; n version

Jean-Yves Didier La gestion de configuration 29/42 • Versionn sur la copie ; • Travail sur la copie ; • Update ;

• Passage `ala versionn+1, tout en conservant les modifications !

Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 2

     

Copie locale D´epˆot Cas int´eressant • Versionn sur le d´epˆot; n • Changement de version ;

version commit +1 n version

Jean-Yves Didier La gestion de configuration 29/42 • Travail sur la copie ; • Update ;

• Passage `ala versionn+1, tout en conservant les modifications !

Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 2

     

Copie locale D´epˆot Cas int´eressant

n • Versionn sur le d´epˆot; n • Changement de version ;

version • Versionn sur la copie ; version commit +1 n version

Jean-Yves Didier La gestion de configuration 29/42 • Update ;

• Passage `ala versionn+1, tout en conservant les modifications !

Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 2

     

Copie locale D´epˆot Cas int´eressant

n • Versionn sur le d´epˆot; n • Changement de version ;

version • Versionn sur la copie ; version commit • Travail sur la copie ; +1 n version

Jean-Yves Didier La gestion de configuration 29/42 • Passage `ala versionn+1, tout en conservant les modifications !

Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 2

     

Copie locale D´epˆot Cas int´eressant

n • Versionn sur le d´epˆot; n • Changement de version ;

version • Versionn sur la copie ; version commit • Travail sur la copie ; update • Update ; +1 n version

Jean-Yves Didier La gestion de configuration 29/42 Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 2

     

Copie locale D´epˆot Cas int´eressant

n • Versionn sur le d´epˆot; n • Changement de version ;

version • Versionn sur la copie ; version commit • Travail sur la copie ; update • Update ; +1 synchronisation n • Passage `ala versionn+1, tout en conservant les

version modifications !

Jean-Yves Didier La gestion de configuration 29/42 Gestion de configuration Gestion de versions L’outil Subversion >

Update : sc´enario 2

     

Copie locale D´epˆot Cas int´eressant

n • Versionn sur le d´epˆot; n • Changement de version ;

version • Versionn sur la copie ; version commit • Travail sur la copie ; update • Update ; +1 synchronisation n • Passage `ala versionn+1, +1 n tout en conservant les

version modifications ! version

Jean-Yves Didier La gestion de configuration 29/42 Gestion de configuration Gestion de versions L’outil Subversion >

Update : fusion des fichiers

Principe de base Comparaison automatique fichier par fichier, ligne par ligne pour les fichiers texte, puis fusion automatique des diff´erences : • entre les deux versions officielles ; • entre la version pr´ec´edenteet la copie de travail.

2 cas de figure • Mise `ajour d’une version `ala suivante :

I Pas de probl`eme. • Mise `ajour d’une version modifi´eelocalement `ala suivante :

I Risque de conflit (si les mˆemeslignes sont modifi´ees); I Intervention manuelle demand´eepar subversion ; I Conflit direct sur les fichiers binaires.

Jean-Yves Didier La gestion de configuration 30/42 • Travail sur la copie ;

• Versionn sur le serveur ; • Commit ;

• Passage `ala versionn+1 des deux cˆot´es.

Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 1

     

Copie locale D´epˆot

n Cas simple

• Versionn sur la copie ; version

Jean-Yves Didier La gestion de configuration 31/42 • Versionn sur le serveur ; • Commit ;

• Passage `ala versionn+1 des deux cˆot´es.

Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 1

     

Copie locale D´epˆot

n Cas simple

• Versionn sur la copie ;

version • Travail sur la copie ;

Jean-Yves Didier La gestion de configuration 31/42 • Commit ;

• Passage `ala versionn+1 des deux cˆot´es.

Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 1

     

Copie locale D´epˆot

n Cas simple

• Versionn sur la copie ; n

version • Travail sur la copie ; • Version sur le serveur ; version n

Jean-Yves Didier La gestion de configuration 31/42 • Passage `ala versionn+1 des deux cˆot´es.

Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 1

     

Copie locale D´epˆot

n Cas simple

• Versionn sur la copie ; n

version • Travail sur la copie ; • Version sur le serveur ; version n commit • Commit ;

Jean-Yves Didier La gestion de configuration 31/42 Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 1

     

Copie locale D´epˆot

n Cas simple

• Versionn sur la copie ; n

version • Travail sur la copie ; • Version sur le serveur ; version n commit • Commit ;

synchronisation • Passage `ala versionn+1 des deux cˆot´es.

Jean-Yves Didier La gestion de configuration 31/42 Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 1

     

Copie locale D´epˆot

n Cas simple

• Versionn sur la copie ; n

version • Travail sur la copie ; • Version sur le serveur ; version n commit • Commit ;

synchronisation • Passage `ala versionn+1 des +1 +1 n n deux cˆot´es. version version

Jean-Yves Didier La gestion de configuration 31/42 • Commit externe et passage `ala versionn+1 sur le d´epˆot; • Commit, ´echecde ce dernier ; • Update pour monter de version avec r´esolutionde conflits si n´ecessaire; • Commit ;

• Passage `ala versionn+2 des deux cˆot´es.

Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 2

     Cas avec perturbation  Copie D´epˆot • Situation initiale identique ; n v. . .

Jean-Yves Didier La gestion de configuration 32/42 • Commit externe et passage `ala versionn+1 sur le d´epˆot; • Commit, ´echecde ce dernier ; • Update pour monter de version avec r´esolutionde conflits si n´ecessaire; • Commit ;

• Passage `ala versionn+2 des deux cˆot´es.

Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 2

     Cas avec perturbation  Copie D´epˆot • Situation initiale identique ; n v. . .

Jean-Yves Didier La gestion de configuration 32/42 • Commit externe et passage `ala versionn+1 sur le d´epˆot; • Commit, ´echecde ce dernier ; • Update pour monter de version avec r´esolutionde conflits si n´ecessaire; • Commit ;

• Passage `ala versionn+2 des deux cˆot´es.

Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 2

     Cas avec perturbation  Copie D´epˆot • Situation initiale identique ; n n v. . . version

Jean-Yves Didier La gestion de configuration 32/42 • Commit, ´echecde ce dernier ; • Update pour monter de version avec r´esolutionde conflits si n´ecessaire; • Commit ;

• Passage `ala versionn+2 des deux cˆot´es.

Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 2

     Cas avec perturbation  Copie D´epˆot • Situation initiale identique ; n n • Commit externe et passage v. . . commit `ala versionn+1 sur le d´epˆot; version +1 n version

Jean-Yves Didier La gestion de configuration 32/42 • Update pour monter de version avec r´esolutionde conflits si n´ecessaire; • Commit ;

• Passage `ala versionn+2 des deux cˆot´es.

Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 2

     Cas avec perturbation  Copie D´epˆot • Situation initiale identique ; n n • Commit externe et passage v. . . commit `ala versionn+1 sur le d´epˆot; version commit • Commit, ´echecde ce dernier ´echec ; +1 n version

Jean-Yves Didier La gestion de configuration 32/42 • Commit ;

• Passage `ala versionn+2 des deux cˆot´es.

Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 2

     Cas avec perturbation  Copie D´epˆot • Situation initiale identique ; n n • Commit externe et passage v. . . commit `ala versionn+1 sur le d´epˆot; version commit • Commit, ´echecde ce dernier ´echec ; +1 update n • Update pour monter de version avec r´esolutionde synchronisation version conflits si n´ecessaire;

Jean-Yves Didier La gestion de configuration 32/42 • Passage `ala versionn+2 des deux cˆot´es.

Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 2

     Cas avec perturbation  Copie D´epˆot • Situation initiale identique ; n n • Commit externe et passage v. . . commit `ala versionn+1 sur le d´epˆot; version commit • Commit, ´echecde ce dernier ´echec ; +1 update n • Update pour monter de version avec r´esolutionde synchronisation version conflits si n´ecessaire; commit • Commit ; synchronisation

Jean-Yves Didier La gestion de configuration 32/42 Gestion de configuration Gestion de versions L’outil Subversion >

Commit : sc´enario 2

     Cas avec perturbation  Copie D´epˆot • Situation initiale identique ; n n • Commit externe et passage v. . . commit `ala versionn+1 sur le d´epˆot; version commit • Commit, ´echecde ce dernier ´echec ; +1 update n • Update pour monter de version avec r´esolutionde synchronisation version conflits si n´ecessaire; commit • Commit ; +2 +2 synchronisation n n • Passage `ala versionn+2 des

v. . . v. . . deux cˆot´es.

Jean-Yves Didier La gestion de configuration 32/42 Gestion de configuration Gestion de versions L’outil Subversion >

Commit : cr´eation d’une nouvelle version

Cr´eationd’une nouvelle version Automatiquement effectu´esur le d´epˆotd`eslors que l’op´eration commit a r´eussi.

Cause d’´echecd’un commit • Un de vos ´equipiersa fait un commit avant vous !

I Solution : faire une mise `ajour dans l’autre sens (update), puis retenter le commit.

Documenter les mont´eesde version • Bonne pratique donc n´ecessaire ! • Message apparaissant dans les logs et permet aux autres utilisateurs de savoir ce qui a ´et´efait rapidement.

Jean-Yves Didier La gestion de configuration 33/42 Gestion de configuration Gestion de versions L’outil Subversion >

Manipuler l’arborescence

Noeud : d´efinition Noeud (node) : fichier ou r´epertoire.

Op´erationsde manipulation add : ajout de noeuds ; del : effacement de noeuds ; copy : copie de noeuds ; move : d´eplacement de noeuds.

R`egles`arespecter • Ne pas oublier de faire un commit apr`es; • Toute modification persistante du d´epˆotdoit passer par ces commandes.

Jean-Yves Didier La gestion de configuration 34/42 Gestion de configuration Gestion de versions L’outil Subversion >

Manipulation de version

Consultation log : visualisation du journal des modifications ; diff : diff´erences entre copie locale et version ou entre versions ; status : visualisation des modifications locales ; blame : identification de l’auteur d’une ligne.

R´eparer une erreur revert : revenir en arri`eresur ses modifications ; merge : revenir en arri`erede plusieurs versions ou fusionner des branches.

Jean-Yves Didier La gestion de configuration 35/42 Gestion de configuration Gestion de versions L’outil Subversion >

Mise en place d’un d´epˆotet des copies locales

Cr´eationdu d´epˆotsur le serveur svnadmin create /chemin/vers/mon/depot/

Import des donn´ees import : mise sous contrˆolede noeuds non versionn´es.

Cr´eationde la copie locale checkout : cr´eationde l’arborescence locale `apartir du d´epˆot.

Jean-Yves Didier La gestion de configuration 36/42 Gestion de configuration Gestion de versions L’outil Subversion >

Profil d’une session de travail

A faire une fois 1 import (si besoin), puis effa¸cage/archivage des donn´ees ; 2 checkout : cr´eationde la copie locale ;

De mani`erecyclique 1 D´ebutde la s´eancede travail : update; 2 Modifications, op´erationsdiverses ; 3 Fin de la s´eancede travail : commit.

Jean-Yves Didier La gestion de configuration 37/42 Gestion de configuration Gestion de versions L’outil Subversion >

D´eploiementde subversion (1/2)

Cˆot´eclient • La ligne de commande (Unix/Windows/MacOS) ; • TortoiseSVN (Windows : extension explorer) ; • Subclipse (extension Eclipse) ; • Ankh-svn (extension Microsoft Visual .Net) ; • SCPlugin (MacOSX : extension finder) ; • ...

Jean-Yves Didier La gestion de configuration 38/42 Gestion de configuration Gestion de versions L’outil Subversion >

D´eploiementde subversion (2/2)

Cˆot´eserveur • Par le service natif svnserve ; • Par le biais de ssh :

I Communication chiffr´eeet s´ecuris´ee; I N´ecessiteun compte sur le serveur. • Par le biais d’un serveur web fournissant l’extension WebDAV :

I Choix du protocole : HTTP ou HTTPS ; I Pas de vrai compte utilisateur sur le serveur ; I Plus souple `aconfigurer ; I Passe au travers des proxy HTTP.

Jean-Yves Didier La gestion de configuration 39/42 Gestion de configuration Gestion de versions L’outil Subversion >

Pr´esentationdes clients

Ligne de commande • Syntaxe : svn operation [-r num rev][nom fichier] ; • operation est parmi celle pr´esent´eesaujourd’hui ; • Aide en ligne svn help !

TortoiseSVN • Int´egr´e`al’explorateur de fichiers Windows ; • Permet de faire les op´erationscourantes en quelques clics.

Jean-Yves Didier La gestion de configuration 40/42 Gestion de configuration Gestion de versions L’outil Subversion >

TortoiseSVN checkout Menu contextuel Phase de

Fichiers sous contrˆolede version dans l’explorateur

Jean-Yves Didier La gestion de configuration 41/42 Gestion de configuration Gestion de versions L’outil Subversion >

Sources

Ressources • Webographie

I Gestion de versions avec Subversion – http://svnbook.red-bean.com/. I Introduction `asubversion – http://dev.nozav.org/intro_svn.html. • Ouvrages

I Subversion, Pratique du d´eveloppement collaboratif avec SVN – Mike Mason – Eyrolles, 2006 I with Git, Powerful tools and techniques for collaborative software development – Matthew McCullough, Jon Loeliger – O’Reilly, 2012 I Product Data Management and Software Configuration Management – Similarities and Differences – The association of Swedish Engineering Industries, 2001

Jean-Yves Didier La gestion de configuration 42/42