les gestionnaires de sources distribués et leurs cas d'utiliation - solutions linux 2009

23
Agenda Introduction Avant propos Rappel historique Contrˆole de version distribu´ e Cas d’utilisation Les solutions libres existantes Les gestionnaires de sources distribu´ es et leurs cas d’utilisations Salons Solutions Linux 2009 Romain PELISSE Atos Origin - Open Source Center 19 mars 2010 Romain PELISSE Les gestionnaires de sources distribu´ es et leurs cas d’utilisations

Upload: romain-pelisse

Post on 26-May-2015

643 views

Category:

Technology


3 download

DESCRIPTION

Introduction aux spécificités des gestionnaires de source distribués et description des usages nouveaux qu'ils apportent.

TRANSCRIPT

Page 1: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Les gestionnaires de sources distribues et leurs casd’utilisations

Salons Solutions Linux 2009

Romain PELISSE

Atos Origin - Open Source Center

19 mars 2010

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 2: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

1 Introduction2 Avant propos3 Rappel historique

4 Controle de version distribue

5 Cas d’utilisation

6 Les solutions libres existantes

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 3: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Romain PELISSE

Architecte Open Source chez AtosOrigin depuis 2005

Contributeur PMD et XRadar

Traduction du HgBook

Charge des TDs Genie Logiciel et POO al’ESME Sudria

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 4: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

disclaimer : No Guru here

Linus a propos de Git

Brian O’Sullivan a propos deMercurial

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 5: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

De quoi s’agit il vraiment ?

Liberte

Processus de travail

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 6: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Mise au point lexicale

Revision control (RCS)

Version control System (VCS)

Software configurationmanagement (SCM)

Configuration management

Source code management

Source code control

Distributed Version ControlSystem

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 7: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Abolir les limites de CVS : SVNBitKeeper et le code de Linux

Historique des outils

SCCS (1970’s) - Fichier unique, gestion par verrouillage

RCS (1970’s) - Solution libre, Repertoire, gestion parverrouillage

CVS (1980’s) - Base sur RCS, puis en reecrit en C

depot centralacces reseaugestion par fusion (“merge”)

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 8: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Abolir les limites de CVS : SVNBitKeeper et le code de Linux

Contraintes de CVS

branchesfichiers binaires“commit” non atomiqueimpossible de renommer les fichiersmisc. (HTTP, source inmaintenable,...)

Figure: “Allez, on commit maintenant...”Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 9: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Abolir les limites de CVS : SVNBitKeeper et le code de Linux

SVN (SubVersion), Jim Blandy / Karl Fogel (2001)

“commit” transactionnel (partiellement)

gestion des fichiers binaires

deplacement de fichier

acces HTTP

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 10: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Abolir les limites de CVS : SVNBitKeeper et le code de Linux

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 11: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Abolir les limites de CVS : SVNBitKeeper et le code de Linux

Figure: “I hate CVS with apassion”

Linus Torvalds :

CVS is broken !

SVN, CVS make right ? ? ?

... mais alors comment faisait il ?

tarball et diff !

BitKeeper (jusqu’a 2005)

Git

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 12: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Modele distribueL’identifiant d’une versionRenversement

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 13: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Modele distribueL’identifiant d’une versionRenversement

Le commit comme objet unique

pas de serveur central, numero de version locale

identification par sha1

cherry-picking

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 14: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Modele distribueL’identifiant d’une versionRenversement

What just happened ! ?

fin des elites du commit ;

outil complet ;

easy fork, easy merge ! ;

commit often, atomicly ;

recherche de bugs (bissect).

“Unchained my code...”

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 15: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Modele distribueL’identifiant d’une versionRenversement

Where do we go from there ?

Decentralisation

Workflow

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 16: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Versionner ses affairesTravail deconnecteSynchroniser des branches distinctes

Versionner ses propres affaires

fonctionnement en local

aucun partage, mais possiblea posteriori

Application

debut d’un projet

recherche de configuration

faire evoluer un documentmais garder ses versions

utiliser des tags pour suivreses documents

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 17: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Versionner ses affairesTravail deconnecteSynchroniser des branches distinctes

Travail deconnecte

travailler sur un projet sans lereseau, car

pas de reseau !acces interdittrop lent/lourd

disposer de l’historique (bissect !)

faire un ensemble de commits etles soumettre en une fois

Application

evolution synchrone

bugfixing dans l’avion/train

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 18: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Versionner ses affairesTravail deconnecteSynchroniser des branches distinctes

Synchroniser des branches distinctes

plusieurs serveurs centraux

site physiques distinctsplusieurs architectures cibles

disposer de l’historique (bissect !)

serie de commit atomique

transplant

scalability

Application

evolution synchrone

sites physiques deconnecte

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 19: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

/ Git Mercurial BazaarVersion 1.55 1.2 1.3.1SLOC 130550 38172 79864Technologies C Python PythonModele Snapshot Changeset Snapshot

Commit atomique

Merge file renames

Revisions signee Partiel

Suivi des mergePartial checkout submodules Prevu/extensions PrevuUtilisation Complexe Tres Simple SimpleBase utilisateur Grande Grande Reduite... ... ... ...

Informations extraites de http ://www.infoq.com/articles/dvcs-guide.

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 20: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Comment choisir son outil ?

definir le mode de travail

contexte d’utilisation

evualuation QSOS

methodologie Open Sourcededie aux logiciels Open Sourcetemplate DVCSevaluation outils

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 21: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Quelques references

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

http ://www.infoq.com/articles/dvcs-guide

http ://qsos.org/

http ://www.russellbeattie.com/blog/distributed-revision-control-systems-git-vs-mercurial-vs-svn

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 22: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Quelques exemples de projet ayant adopte un DVCS...

Linux (Git)

Python (Mercurial)

OpenJDK (Mercurial)

gnu emacs (Bazaar)

Firefox (Mercurial)

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations

Page 23: Les gestionnaires de sources distribués et leurs cas d'utiliation - Solutions Linux 2009

AgendaIntroduction

Avant proposRappel historique

Controle de version distribueCas d’utilisation

Les solutions libres existantes

Sources des images

http ://commons.wikimedia.org/wiki/File :Git-logo.svg

http ://www.flickr.com/photos/soldiersmediacenter/3130119367/

http ://fr.wikipedia.org/wiki/Fichier :Linus Torvalds.jpeg

http ://www.flickr.com/photos/caveman 92223/3102228691/sizes/o/

http ://www.flickr.com/photos/doberagi/1404539812/sizes/l/

http ://www.sikh-history.com/sikhhist/gurus/nanak5.html

http ://flickr.com/photos/kliefi/2303269060/

http ://flickr.com/photos/andreasmarx/38313268/

http ://flickr.com/photos/vogelium/330566664/

http ://openclipart.org/media/files/jean victor balin/8656

http ://www.flickr.com/photos/c-remy/2373123435/

http ://www.flickr.com/photos/sharynmorrow/4797654/

http ://www.flickr.com/photos/mvisosky/2683222011/

http ://www.flickr.com/photos/wolfsoul/2072332105/

Romain PELISSE Les gestionnaires de sources distribues et leurs cas d’utilisations