SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Historique      Obsolescence                    Distribution                               Évolve




             Historique évolutif avec Mercurial


                         Pierre-Yves David




                        25 septembre 2012




                                   Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                             1 / 23
Historique   Obsolescence                   Distribution                               Évolve


                      Mercurial ?




               Gestionnaire de Version Décentralisé
               Écrit en python
               Créé en 2005 par un hacker Linux (Matt Mackall)
               Simple, (très) puissant, rapide
               Multi plateforme




                               Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                         2 / 23
Historique   Obsolescence                           Distribution                               Évolve


                       Historique




              Crédit epSos.de : Creative Common Attribution

                                       Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                 3 / 23
Historique   Obsolescence                Distribution                               Évolve




                            Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                      4 / 23
Historique                 Obsolescence                Distribution                               Évolve


                        Pourquoi et comment ?



             Reproduire
             Tracer les modifications

             Contenu
               (fichiers)
             Métadonné
                                                           Identifiant (sha)
               (qui, quand, pourquoi)
             Arborescence
               (où)




                                          Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                    5 / 23
Historique                 Obsolescence                Distribution                               Évolve


               Tout changesets n’est pas bon à dire


               Mange avec Babar



             Mange avec un élephant                    Mange avec Babar



             Mange aveq un éléphant               Mange avec un éléphant



               Mange un élephant                      Mange un élephant




                                          Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                    6 / 23
Historique              Obsolescence                Distribution                               Évolve


                 Phases : Passé contre présent



                                         Éditeur de changeset

      Historique                                  créer :        commit
                                               bouger :          rebase
      Passé + Présent                          ajouter :         amend
         Présent : En formation                  retirer :       uncommit
             Passé : Immutable              supprimer :          prune
                                              grouper :          fold
                                            tout en un :         histedit




                                       Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                 7 / 23
Historique                Obsolescence                             Distribution                               Évolve


                                  Obsolescence




             Crédit Kenn Wilson : Creative Common Attribution, Non-commercial, Share Alike

                                                      Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                                8 / 23
Historique       Obsolescence                        Distribution                               Évolve


             On ne modifie pas l’histoire !


                         "6fcdd7fe;Bob;Babar"
                         ⟶ebc2b5a1


                 "925d8319;Alice;Babar,Celeste,flore"
                 ⟶ 6fcdd7fe


                    "19b08111;Alice;Babar,Celeste"
                    ⟶ 925d8319


                                ";Alice;Babar"
                                ⟶ 19b08111




                                        Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                  9 / 23
Historique   Obsolescence                        Distribution                               Évolve


             On réécrit l’histoire !


                                             "6d9e1549;Bob;Babar"
                                             ⟶dda72e36


                                    "1a25964c;Alice;Babar,Celeste,Flore"
                                    ⟶ 6d9e1549


                                       "19b08111;Bob;Babar,Celeste"
                                       ⟶ 1a25964c



                            ";Alice;Babar"
                            ⟶ 19b08111




                                    Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                              10 / 23
Historique                 Obsolescence                Distribution                               Évolve


                Marqueur d’obsolescence (hg-2.3)


      Marqueur d’obsolescence
             précurseurs (obsolète)
             successeurs (nouveau)
             date
             auteur

      Méta historique : (court terme)
             différence
             log
             sauvegarde de données
             traitement automatique
             ...




                                          Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                    11 / 23
Historique           Obsolescence                            Distribution                               Évolve


                               Distribution




             Crédit Arenamontanus : Creative Common Attribution Non-commercial

                                                Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                          12 / 23
Historique                     Obsolescence                   Distribution                               Évolve


                 La grande distribution est un problème


      Ajout uniquement

         B                            B            B                 B                  B
                  +      A      =                        +                      =
             A                        A            A                 A                  A


      L’enfer c’est les autres
                 Pas de contrôle absolu,
                 Distribution des conséquences




                                                 Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                           13 / 23
Historique                 Obsolescence                             Distribution                               Évolve


                                     Instabilité
      Développement distant à l’historique obsolète

                                          C


                                          B
                                                                            C

                                          A                                          B'
                   B
                                          Z                                          A'
                   A
                                      Distant

                   Z                                  B'                    Z

                 initial                                                 final = instable
                                                      A'




                                          Z

                                              Local



                                                       Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                                 14 / 23
Historique             Obsolescence                         Distribution                               Évolve


                                        Tardif
      L’historique obsolète est devenu indispensable

                                      v4.2


                                       A

                                                                           v4.2
                                       Z                                               A'
               A
                                 Distant                                     A

               Z
                                               A'                            Z
             initial
                                                                        final = tardif


                                       Z

                                           Local

                                               Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                         15 / 23
Historique             Obsolescence                             Distribution                               Évolve


                                   Divergence
      Et si deux personnes réécrivent le même changeset

                             B''




                                      A                            B''              B'
               B

                                      Z
               A
                                   Distant                                  A

               Z                              B'                            Z
             initial
                                                                    final = divergent


                                      A


                                      Z
                                          Local

                                                   Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                             16 / 23
Historique             Obsolescence                   Distribution                               Évolve


                   Si il n’y avait pas de solution,
                   il n’y aurait pas de problème



      Outils

      Phases                          Historique d’obsolescence
      ⇒ Prévenir                      ⇒ Diagnostique
                                      ⇒ Résolution




                                         Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                   17 / 23
Historique               Obsolescence                 Distribution                               Évolve


                                   Instabilité
      un simple rebase


                                                               C'
                     C

                                   B'                           B'


                                   A'                           A'




                     Z                         Z

                                         Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                   18 / 23
Historique              Obsolescence                    Distribution                               Évolve


                                       Tardif
      une simple différence



                                                                   Aᵟ
                  v4.2                       v4.2
                                  A'
                    A                            A


                    Z                            Z

                                           Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                     19 / 23
Historique              Obsolescence                   Distribution                               Évolve


                                Divergence

      Un simple merge


                                                                           B*

             B''        B'
                                         B*

                                   B''            B'
                   A                                                       A


                   Z                                                       Z




                                          Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                    20 / 23
Historique                Obsolescence                             Distribution                               Évolve


                                           Évolve




             Crédit Mark Witton : Creative Common Attribution, Non-commercial, Share Alike




                                                      Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                                21 / 23
Historique              Obsolescence                 Distribution                               Évolve


                          Oui, mais quand ?




      Maintenant
      hg-2.1 Sécurité (Février 2012) : Phases
      hg-2.3 Échange (Août 2012) : Obsolescence extension/expérimental
      hg-2.4 Échange (Novembre 2012) : Autonome dans cœur

      http ://mercurial.selenic.com/wiki/ChangesetsObsolescence




                                        Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                                  22 / 23
Historique   Obsolescence                Distribution                               Évolve


                      Question ?




                            Pierre-Yves David- Historique évolutif avec Mercurial
                                                                                      23 / 23

Contenu connexe

En vedette

ppt sur le Référencement
ppt sur le Référencementppt sur le Référencement
ppt sur le Référencement3Market
 
Les réseaux sociaux
Les réseaux sociauxLes réseaux sociaux
Les réseaux sociaux3Market
 
Designing Your Better Business
Designing Your Better BusinessDesigning Your Better Business
Designing Your Better BusinessAntony Upward
 
Mockups & Requirements [ITdeya @ IF_IT_S]
Mockups & Requirements [ITdeya @ IF_IT_S]Mockups & Requirements [ITdeya @ IF_IT_S]
Mockups & Requirements [ITdeya @ IF_IT_S]Andrii Lundiak
 
Buzz marketing
Buzz marketingBuzz marketing
Buzz marketing3Market
 
Flourishing Business Canvas v2 Introduction
Flourishing Business Canvas v2 IntroductionFlourishing Business Canvas v2 Introduction
Flourishing Business Canvas v2 IntroductionAntony Upward
 

En vedette (6)

ppt sur le Référencement
ppt sur le Référencementppt sur le Référencement
ppt sur le Référencement
 
Les réseaux sociaux
Les réseaux sociauxLes réseaux sociaux
Les réseaux sociaux
 
Designing Your Better Business
Designing Your Better BusinessDesigning Your Better Business
Designing Your Better Business
 
Mockups & Requirements [ITdeya @ IF_IT_S]
Mockups & Requirements [ITdeya @ IF_IT_S]Mockups & Requirements [ITdeya @ IF_IT_S]
Mockups & Requirements [ITdeya @ IF_IT_S]
 
Buzz marketing
Buzz marketingBuzz marketing
Buzz marketing
 
Flourishing Business Canvas v2 Introduction
Flourishing Business Canvas v2 IntroductionFlourishing Business Canvas v2 Introduction
Flourishing Business Canvas v2 Introduction
 

Plus de Logilab

Testinfra pyconfr 2017
Testinfra pyconfr 2017Testinfra pyconfr 2017
Testinfra pyconfr 2017Logilab
 
Open Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communsOpen Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communsLogilab
 
Salon Open Data
Salon Open DataSalon Open Data
Salon Open DataLogilab
 
Pydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instrumentsPydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instrumentsLogilab
 
Présentation Logilab
Présentation LogilabPrésentation Logilab
Présentation LogilabLogilab
 
Système d'archivage électronique mutualisé
Système d'archivage électronique mutualiséSystème d'archivage électronique mutualisé
Système d'archivage électronique mutualiséLogilab
 
Utiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou dockerUtiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou dockerLogilab
 
Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21Logilab
 
Simulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industrielSimulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industrielLogilab
 
Simulagora - Salon du Bourget
Simulagora - Salon du BourgetSimulagora - Salon du Bourget
Simulagora - Salon du BourgetLogilab
 
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015Logilab
 
Study of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on SimulagoraStudy of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on SimulagoraLogilab
 
Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...Logilab
 
Battle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - CubicwebBattle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - CubicwebLogilab
 
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien CristauDebconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien CristauLogilab
 
Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)Logilab
 
PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)Logilab
 
Open Legislative Data Conference 2014
Open Legislative Data Conference 2014Open Legislative Data Conference 2014
Open Legislative Data Conference 2014Logilab
 
Pylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieuxPylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieuxLogilab
 
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...Logilab
 

Plus de Logilab (20)

Testinfra pyconfr 2017
Testinfra pyconfr 2017Testinfra pyconfr 2017
Testinfra pyconfr 2017
 
Open Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communsOpen Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communs
 
Salon Open Data
Salon Open DataSalon Open Data
Salon Open Data
 
Pydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instrumentsPydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instruments
 
Présentation Logilab
Présentation LogilabPrésentation Logilab
Présentation Logilab
 
Système d'archivage électronique mutualisé
Système d'archivage électronique mutualiséSystème d'archivage électronique mutualisé
Système d'archivage électronique mutualisé
 
Utiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou dockerUtiliser salt pour tester son infrastructure sur open stack ou docker
Utiliser salt pour tester son infrastructure sur open stack ou docker
 
Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21
 
Simulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industrielSimulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industriel
 
Simulagora - Salon du Bourget
Simulagora - Salon du BourgetSimulagora - Salon du Bourget
Simulagora - Salon du Bourget
 
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
 
Study of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on SimulagoraStudy of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on Simulagora
 
Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...Initialiser des conteneurs Docker à partir de configurations Salt construites...
Initialiser des conteneurs Docker à partir de configurations Salt construites...
 
Battle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - CubicwebBattle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - Cubicweb
 
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien CristauDebconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
 
Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)
 
PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)
 
Open Legislative Data Conference 2014
Open Legislative Data Conference 2014Open Legislative Data Conference 2014
Open Legislative Data Conference 2014
 
Pylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieuxPylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieux
 
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
 

Historique évolutif avec Mercurial - Pyconfr 2012

  • 1. Historique Obsolescence Distribution Évolve Historique évolutif avec Mercurial Pierre-Yves David 25 septembre 2012 Pierre-Yves David- Historique évolutif avec Mercurial 1 / 23
  • 2. Historique Obsolescence Distribution Évolve Mercurial ? Gestionnaire de Version Décentralisé Écrit en python Créé en 2005 par un hacker Linux (Matt Mackall) Simple, (très) puissant, rapide Multi plateforme Pierre-Yves David- Historique évolutif avec Mercurial 2 / 23
  • 3. Historique Obsolescence Distribution Évolve Historique Crédit epSos.de : Creative Common Attribution Pierre-Yves David- Historique évolutif avec Mercurial 3 / 23
  • 4. Historique Obsolescence Distribution Évolve Pierre-Yves David- Historique évolutif avec Mercurial 4 / 23
  • 5. Historique Obsolescence Distribution Évolve Pourquoi et comment ? Reproduire Tracer les modifications Contenu (fichiers) Métadonné Identifiant (sha) (qui, quand, pourquoi) Arborescence (où) Pierre-Yves David- Historique évolutif avec Mercurial 5 / 23
  • 6. Historique Obsolescence Distribution Évolve Tout changesets n’est pas bon à dire Mange avec Babar Mange avec un élephant Mange avec Babar Mange aveq un éléphant Mange avec un éléphant Mange un élephant Mange un élephant Pierre-Yves David- Historique évolutif avec Mercurial 6 / 23
  • 7. Historique Obsolescence Distribution Évolve Phases : Passé contre présent Éditeur de changeset Historique créer : commit bouger : rebase Passé + Présent ajouter : amend Présent : En formation retirer : uncommit Passé : Immutable supprimer : prune grouper : fold tout en un : histedit Pierre-Yves David- Historique évolutif avec Mercurial 7 / 23
  • 8. Historique Obsolescence Distribution Évolve Obsolescence Crédit Kenn Wilson : Creative Common Attribution, Non-commercial, Share Alike Pierre-Yves David- Historique évolutif avec Mercurial 8 / 23
  • 9. Historique Obsolescence Distribution Évolve On ne modifie pas l’histoire ! "6fcdd7fe;Bob;Babar" ⟶ebc2b5a1 "925d8319;Alice;Babar,Celeste,flore" ⟶ 6fcdd7fe "19b08111;Alice;Babar,Celeste" ⟶ 925d8319 ";Alice;Babar" ⟶ 19b08111 Pierre-Yves David- Historique évolutif avec Mercurial 9 / 23
  • 10. Historique Obsolescence Distribution Évolve On réécrit l’histoire ! "6d9e1549;Bob;Babar" ⟶dda72e36 "1a25964c;Alice;Babar,Celeste,Flore" ⟶ 6d9e1549 "19b08111;Bob;Babar,Celeste" ⟶ 1a25964c ";Alice;Babar" ⟶ 19b08111 Pierre-Yves David- Historique évolutif avec Mercurial 10 / 23
  • 11. Historique Obsolescence Distribution Évolve Marqueur d’obsolescence (hg-2.3) Marqueur d’obsolescence précurseurs (obsolète) successeurs (nouveau) date auteur Méta historique : (court terme) différence log sauvegarde de données traitement automatique ... Pierre-Yves David- Historique évolutif avec Mercurial 11 / 23
  • 12. Historique Obsolescence Distribution Évolve Distribution Crédit Arenamontanus : Creative Common Attribution Non-commercial Pierre-Yves David- Historique évolutif avec Mercurial 12 / 23
  • 13. Historique Obsolescence Distribution Évolve La grande distribution est un problème Ajout uniquement B B B B B + A = + = A A A A A L’enfer c’est les autres Pas de contrôle absolu, Distribution des conséquences Pierre-Yves David- Historique évolutif avec Mercurial 13 / 23
  • 14. Historique Obsolescence Distribution Évolve Instabilité Développement distant à l’historique obsolète C B C A B' B Z A' A Distant Z B' Z initial final = instable A' Z Local Pierre-Yves David- Historique évolutif avec Mercurial 14 / 23
  • 15. Historique Obsolescence Distribution Évolve Tardif L’historique obsolète est devenu indispensable v4.2 A v4.2 Z A' A Distant A Z A' Z initial final = tardif Z Local Pierre-Yves David- Historique évolutif avec Mercurial 15 / 23
  • 16. Historique Obsolescence Distribution Évolve Divergence Et si deux personnes réécrivent le même changeset B'' A B'' B' B Z A Distant A Z B' Z initial final = divergent A Z Local Pierre-Yves David- Historique évolutif avec Mercurial 16 / 23
  • 17. Historique Obsolescence Distribution Évolve Si il n’y avait pas de solution, il n’y aurait pas de problème Outils Phases Historique d’obsolescence ⇒ Prévenir ⇒ Diagnostique ⇒ Résolution Pierre-Yves David- Historique évolutif avec Mercurial 17 / 23
  • 18. Historique Obsolescence Distribution Évolve Instabilité un simple rebase C' C B' B' A' A' Z Z Pierre-Yves David- Historique évolutif avec Mercurial 18 / 23
  • 19. Historique Obsolescence Distribution Évolve Tardif une simple différence Aᵟ v4.2 v4.2 A' A A Z Z Pierre-Yves David- Historique évolutif avec Mercurial 19 / 23
  • 20. Historique Obsolescence Distribution Évolve Divergence Un simple merge B* B'' B' B* B'' B' A A Z Z Pierre-Yves David- Historique évolutif avec Mercurial 20 / 23
  • 21. Historique Obsolescence Distribution Évolve Évolve Crédit Mark Witton : Creative Common Attribution, Non-commercial, Share Alike Pierre-Yves David- Historique évolutif avec Mercurial 21 / 23
  • 22. Historique Obsolescence Distribution Évolve Oui, mais quand ? Maintenant hg-2.1 Sécurité (Février 2012) : Phases hg-2.3 Échange (Août 2012) : Obsolescence extension/expérimental hg-2.4 Échange (Novembre 2012) : Autonome dans cœur http ://mercurial.selenic.com/wiki/ChangesetsObsolescence Pierre-Yves David- Historique évolutif avec Mercurial 22 / 23
  • 23. Historique Obsolescence Distribution Évolve Question ? Pierre-Yves David- Historique évolutif avec Mercurial 23 / 23