25
Historique Obsolescence Distribution Évolve Historique évolutif avec Mercurial Pierre-Yves David OSDC.fr, Octobre 2012 1 / 25 Pierre-Yves David- Historique évolutif avec Mercurial

OSDC 2012 mercurial evolve talk

  • Upload
    logilab

  • View
    315

  • Download
    1

Embed Size (px)

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/113067

Citation preview

Page 1: OSDC 2012 mercurial evolve talk

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

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

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

Historique Obsolescence Distribution Évolve

4 / 25Pierre-Yves David- Historique évolutif avec Mercurial

Page 5: OSDC 2012 mercurial evolve talk

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Historique Obsolescence Distribution Évolve

Question ?

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