osdc 2012 mercurial evolve talk
DESCRIPTION
Ce concept permet aux développeurs de découvrir la réécriture d'historique de manière simple et sûre. Les utilisateurs avancés ont accès de leur côté à des processus de travail et de revue encore inédits dans le monde des DVCS. http://www.logilab.org/blogentry/113067TRANSCRIPT
![Page 1: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/1.jpg)
Historique Obsolescence Distribution Évolve
Historique évolutif avec Mercurial
Pierre-Yves David
OSDC.fr, Octobre 2012
1 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 2: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/2.jpg)
Historique Obsolescence Distribution Évolve
Mercurial ?
Gestionnaire de Version DécentraliséÉcrit en pythonCréé en 2005 par un hacker Linux (Matt Mackall)Simple, (très) puissant, rapideMulti plateforme
2 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 3: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/3.jpg)
Historique Obsolescence Distribution Évolve
Historique
Crédit epSos.de : Creative Common Attribution
3 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 4: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/4.jpg)
Historique Obsolescence Distribution Évolve
4 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 5: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/5.jpg)
Historique Obsolescence Distribution Évolve
Pourquoi et comment ?
ReproduireTracer les modifications
Contenu (fichiers)Métadonné (qui, quand, pourquoi)Arborescence (où)
Identifiant (sha)
5 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 6: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/6.jpg)
Historique Obsolescence Distribution Évolve
Tout changesets n’est pas bon à dire
Mange un élephant
Mange avec un élephant
Mange aveq un éléphant
Mange avec Babar
Mange un élephant
Mange avec un éléphant
Mange avec Babar
6 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 7: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/7.jpg)
Historique Obsolescence Distribution Évolve
Mieux vaut avoir de l’ordre.
Version 1.33.7
New big feature
Small fix
Version 1.33.7
Small fix
New big feature
7 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 8: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/8.jpg)
Historique Obsolescence Distribution Évolve
Phases : Passé contre présent
Historique
Passé + PrésentPrésent : En formation
Passé : Immutable
Éditeur de changeset
créer : commitbouger : rebaseajouter : amendretirer : uncommit
supprimer : prunegrouper : fold
tout en un : histedit
8 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 9: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/9.jpg)
Historique Obsolescence Distribution Évolve
Fonctionnalité avancées et optionnelle
Une complexité progressive est primordiale !
9 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 10: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/10.jpg)
Historique Obsolescence Distribution Évolve
Obsolescence
Crédit Kenn Wilson : Creative Common Attribution, Non-commercial, Share Alike
10 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 11: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/11.jpg)
Historique Obsolescence Distribution Évolve
On ne modifie pas l’histoire !
";Alice;Babar"⟶ 19b08111
"19b08111;Alice;Babar,Celeste"⟶ 925d8319
"6fcdd7fe;Bob;Babar"⟶ebc2b5a1
"925d8319;Alice;Babar,Celeste,flore"⟶ 6fcdd7fe
11 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 12: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/12.jpg)
Historique Obsolescence Distribution Évolve
On réécrit l’histoire !
";Alice;Babar"⟶ 19b08111
"19b08111;Bob;Babar,Celeste"⟶ 1a25964c
"6d9e1549;Bob;Babar"⟶dda72e36
"1a25964c;Alice;Babar,Celeste,Flore"⟶ 6d9e1549
12 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 13: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/13.jpg)
Historique Obsolescence Distribution Évolve
Marqueur d’obsolescence (hg-2.3)
Marqueur d’obsolescenceprécurseurs (obsolète)successeurs (nouveau)dateauteur
Méta historique : (court terme)différencelogsauvegarde de donnéestraitement automatique...
13 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 14: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/14.jpg)
Historique Obsolescence Distribution Évolve
Distribution
Crédit Arenamontanus : Creative Common Attribution Non-commercial
14 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 15: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/15.jpg)
Historique Obsolescence Distribution Évolve
La grande distribution est un problème
Ajout uniquement
B
A
A
B
A
+ =B
A
B
A
+ =B
A
L’enfer c’est les autresPas de contrôle absolu,Distribution des conséquences
15 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 16: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/16.jpg)
Historique Obsolescence Distribution Évolve
InstabilitéDéveloppement distant à l’historique obsolète
Z
B'
A'
Local
B
A
Z
C
Distant
Z
B'
A'
C
final = instable
B
A
Z
initial
16 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 17: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/17.jpg)
Historique Obsolescence Distribution Évolve
TardifL’historique obsolète est devenu indispensable
Local
Distant
final = tardif
A
Z
Z
A'initial
v4.2
A
Z
A'
v4.2
A
Z
17 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 18: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/18.jpg)
Historique Obsolescence Distribution Évolve
Divergence
Et si deux personnes réécrivent le même changeset
Local
Distant
final = divergentinitial
B
A
Z
A
Z
B'
A
Z
B''
A
Z
B'B''
18 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 19: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/19.jpg)
Historique Obsolescence Distribution Évolve
Si il n’y avait pas de solution,il n’y aurait pas de problème
Outils
Phases⇒ Prévenir
Historique d’obsolescence⇒ Diagnostique⇒ Résolution
19 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 20: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/20.jpg)
Historique Obsolescence Distribution Évolve
Instabilitéun simple rebase
Z
B'
A'
C
Z
B'
A'
C'
20 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 21: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/21.jpg)
Historique Obsolescence Distribution Évolve
Tardifune simple différence
v4.2
A
Z
A'
v4.2
A
Z
Aᵟ
21 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 22: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/22.jpg)
Historique Obsolescence Distribution Évolve
Divergence
Un simple merge
A
Z
B'B''
A
Z
B'B''
B*
B*
22 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 23: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/23.jpg)
Historique Obsolescence Distribution Évolve
Évolve
Crédit Mark Witton : Creative Common Attribution, Non-commercial, Share Alike
23 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 24: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/24.jpg)
Historique Obsolescence Distribution Évolve
Oui, mais quand ?
Maintenanthg-2.1 Sécurité (Février 2012) : Phaseshg-2.3 Échange (Août 2012) : Obsolescence extension/expérimentalhg-2.4 Échange (Novembre 2012) : Autonome dans cœur
http ://mercurial.selenic.com/wiki/ChangesetsObsolescence
24 / 25Pierre-Yves David- Historique évolutif avec Mercurial
![Page 25: OSDC 2012 mercurial evolve talk](https://reader031.vdocuments.site/reader031/viewer/2022013118/5564b214d8b42a98268b4f73/html5/thumbnails/25.jpg)
Historique Obsolescence Distribution Évolve
Question ?
25 / 25Pierre-Yves David- Historique évolutif avec Mercurial