SlideShare a Scribd company logo
1 of 80
La gestion de configuration qui vous
            veut du bien
Faisons connaissance



               David Gageot

            CTO algodeal.com
            The Crowd Sourced
            Quant Hedge Fund

                 @dgageot
               javabien.net
Nous allons parler de...

                                Gestion
            Refactoring        de sources


  Gain
de temps


                                   Intégration
                                    continue
            Travail
           en équipe
...mais aussi de...




    Bottes                                  Yoda
   de Foin




                                    Sandwich
                                   au fromage
  Men
in Black
Ca vous va ?




               Photo: http://www.flickr.com/photos/91082225@N00/3271601712
Git


Genre : Gestion de version
Date de naissance : 2005
Créateur : Linus Torvald
Licence : GPL

Signes distinctifs :
Pas besoin de serveur
Chaque utilisateur a une
copie de l’historique
Fonctionne en déconnecté
              Photo:http://getch.files.wordpress.com/2009/02/mask-linus_torvalds.jpg
La concurrence
Avant d’aller plus loin...
Oubliez tout ce que vous savez




                    http://www.filmbuffonline.com/FBOLNewsreel/wordpress/wp-content/uploads/2009/10/MenInBlack1.jpg
Pas de temps à perdre ?
     Git en action




                          Photo: http://www.flickr.com/photos/zoutedrop/2317065892/
mvn eclipse:eclipse ne fonctionne plus !
   Depuis quand ? Quelle version ?




                          Photo: http://malcontenta.blog.lemonde.fr/files/2008/06/chaplin-les-temps-modernes.1212659628.jpg
Tester toutes les versions précédentes ?




                                 Photo: http://www.flickr.com/photos/tarchamps/2835943555/sizes/l/
Dichotomie :

La dichotomie (« couper en deux » en grec)
est, en algorithmique, un processus itératif ou
récursif de recherche où, à chaque étape, on
coupe en deux parties (pas forcément égales)
un espace de recherche qui devient restreint à
l'une de ces deux parties.

                                     Wikipedia
Un petit dessin...
Tester toutes les versions depuis la fin




                                           t
Tester toutes les versions depuis la fin

                                           KO


                                            t
Tester toutes les versions depuis la fin

OK                                              KO


                                                 t
Tester toutes les versions depuis la fin

OK    6      5      4      3      2      1      KO


                                                 t
Tester toutes les versions depuis la fin

OK    6      5      4      3      2      1      KO



                 Dichotomie

OK                                              KO
Tester toutes les versions depuis la fin

OK    6      5      4      3      2      1      KO



                 Dichotomie

OK                                              KO
Tester toutes les versions depuis la fin

OK    6      5      4      3      2      1      KO



                 Dichotomie

OK                  1                           KO
Tester toutes les versions depuis la fin

OK    6      5      4      3      2      1      KO



                 Dichotomie

OK                  1                           KO
Tester toutes les versions depuis la fin

OK    6      5      4      3      2      1      KO



                 Dichotomie

OK                  1                           KO
Tester toutes les versions depuis la fin

OK    6      5      4      3      2      1      KO



                 Dichotomie

OK    2             1                           KO
Tester toutes les versions depuis la fin

OK    6      5      4      3      2      1      KO



                 Dichotomie

OK    2             1                           KO
Tester toutes les versions depuis la fin

OK    6      5      4      3      2      1      KO



                 Dichotomie

OK    2      3      1                           KO
Tester toutes les versions depuis la fin

OK    6      5      4      3      2      1      KO

                                                   O(n)


                 Dichotomie

OK    2      3      1                           KO

                                                O(log n)
A la main, ça reste long




                  Photo: http://www.wallfizz.com/nature/plaine-et-prairie/2714-botte-de-foin-dans-un-champ-WallFizz.jpg
Surtout avec des branches




                            Photo: http://farm1.static.flickr.com/154/356715278_0e0cfe107c.jpg
Git bisect
 (démo)




      Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
git bisect
Partageons quelques
      tours de magie
      « La gestion de
configuration sans serveur »
 « Le merge omniscient »
  « Le build incassable »




             Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
« La gestion de configuration
        sans serveur »




           Photo: http://www.allocine.fr/film/fichefilm-20588/affiches/detail/?cmediafile=18930405
Mettre un répertoire en gestion de configuration
        Sans serveur, sans administrateur
Mettre un répertoire en gestion de configuration


                    Quand ?
   Avant d’éditer des fichiers de configuration
            Pour préparer une démo
         Avant de mettre à jour Eclipse
                        ...

                     Où ?
           Clef USB, Disque externe

       Permet de se faire la main sur Git
Git & Gitx
 (démo)




      Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
Commits locaux




   Amélioration


   Correctif


   Première version
Branches locales


master                  branche

         Amélioration         Ajout 2


         Correctif            Ajout 1


         Première version
Fusion de branches


master      merge branche

                               branche

            Amélioration         Ajout 2


            Correctif            Ajout 1


            Première version
One more thing...


master     Suite fonctionnalité B



           Suite fonctionnalité A


           Début fonctionnalité B


           Début fonctionnalité A
Git rebase -i


master   Suite fonctionnalité B



         Début fonctionnalité B


         Suite fonctionnalité A


         Début fonctionnalité A
Git rebase -i (suite)




master

         Fonctionnalité B



         Fonctionnalité A
Partagé




Faire une copie locale de tout l’historique




    Pousser/récupérer les modifications
Partagé                         Vous
                                              savez presque
                                                  tout !




Faire une copie locale de tout l’historique




    Pousser/récupérer les modifications
Partagé




Partage de sources dans une équipe
 Pas de notion de maître / esclave

Chacun peut faire des modifications
   et récupérer celles des autres

       Pas d’administrateur
Cercles de confiance


       Référence
pull




                       Committer
Cercles de confiance




Mode Open Source : noyaux linux

      Pas de droits d’accès

      Pas d’administrateur

 Modèle pour une grosse équipe
Centralisé




             Créer un repository
                   central


              Faire une copie
                   locale
Centralisé



           A la Subversion

Chaque clone connait tout l’historique

     Travail en mode déconnecté

           Backup gratuite
(Encore un administrateur de moins...)
Git Hub
Comme à la maison
Git permet de suivre son propre workflow




                              Photo: http://www.e-cart.biz/stores/vintage-metal-art/images/custom_tailor.gif
Un vrai projet
   (démo)




        Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
Collaborer, ça veut dire quoi ?



                                Fichiers




Développeurs
Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
«Le merge omniscient»




Photo: http://www.computerweekly.com/PhotoGalleries/235697/944_20_Cerebro-X-Men-Origins-Wolverine-Gadgets-and-Weapons.JPG
Faire un merge c’est difficile
     Frein au refactoring




                         Photo: http://img4.southernliving.com/i/2007/01/grilled-cheese/melted-cheese-l.jpg
Cas d’école

Modifier un fichier pendant qu’un
 autre développeur le renomme




       Casse tête assuré
Exemples



       Renommer tous les
            packages
        com.tech4quant
        en com.algodeal

    Découper un projet maven
        en sous projets




              Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
Keep it Simple Stupid
Pas besoin de plugin. Juste find, mv, sed
Keep it Simple Stupid
Sans code freeze
Un Build Manager dans la salle ?




                               Photo: http://flickr.com/photos/8459432@N03/3446187475
Un vrai projet Java
vu avec l’outil Gource
       (démo)




           Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
«Le build incassable»




Photo: http://4.bp.blogspot.com/_OhGGUzXs2IY/SlcDgkq4riI/AAAAAAAAB3Y/5uoio0yUue8/s1600-h/Affiche+1.jpg
Intégration continue
Hudson, Cruise Control, Team City ?
Et si le build n’était jamais cassé ?
Un petit script suffit
Un petit dessin...
Partagé




Perso             Build privé


              Mon Poste de travail
Partagé




Perso             Build privé


              Mon Poste de travail
Partagé




        Sync
Perso             Build privé


               Mon Poste de travail
Partagé




                       Teste

        Sync
Perso             Build privé


               Mon Poste de travail
Partagé


                     puis publie

                       Teste

        Sync
Perso             Build privé


               Mon Poste de travail
Plus de pause café pendant le build




                              Photo: http://farm3.static.flickr.com/2698/4041033176_80072af942.jpg
Cette présentation est loin d’être exhaustive


       add -p                checkout
                                              revert
                 cherry-pick
diff
                     reset     filter-branch    stash
       hooks

                                        log
               tag            tig
                                         git blame
 instaweb              whatchanged                 clean
«Git demain adopter tu dois, jeune Padawan»




                                 Photo: http://networksecurityip.files.wordpress.com/2007/11/yoda.jpg
Je commence demain
GitX
Git-svn




 Passerelle bi-directionnelle vers
            Subversion

Permet de travailler sous git tout en
       publiant dans SVN
Limites de Git-svn




 Pas accès à toute la puissance de git.

Pas compatible avec toutes les mises en
           oeuvre de SVN
Merci
Questions / Réponses
Faisons connaissance



               David Gageot

            CTO algodeal.com
            The Crowd Sourced
            Quant Hedge Fund

                 @dgageot
               javabien.net

More Related Content

Viewers also liked

Git Agile France 2010
Git Agile France 2010Git Agile France 2010
Git Agile France 2010David Gageot
 
Le Facilitateur, un role encore meconnu
Le Facilitateur, un role encore meconnuLe Facilitateur, un role encore meconnu
Le Facilitateur, un role encore meconnuDavid Gageot
 
My own preferred testing tools - Paris JUG 2011
My own preferred testing tools - Paris JUG 2011My own preferred testing tools - Paris JUG 2011
My own preferred testing tools - Paris JUG 2011David Gageot
 
Let's make this test suite run faster - Paris JUG 2011
Let's make this test suite run faster - Paris JUG 2011Let's make this test suite run faster - Paris JUG 2011
Let's make this test suite run faster - Paris JUG 2011David Gageot
 
Let's make this test suite run faster
Let's make this test suite run fasterLet's make this test suite run faster
Let's make this test suite run fasterDavid Gageot
 
Let's make this test suite run faster! SoftShake 2010
Let's make this test suite run faster! SoftShake 2010Let's make this test suite run faster! SoftShake 2010
Let's make this test suite run faster! SoftShake 2010David Gageot
 
Spring 4 en spring data
Spring 4 en spring dataSpring 4 en spring data
Spring 4 en spring dataGeert Pante
 
Java7 New Features and Code Examples
Java7 New Features and Code ExamplesJava7 New Features and Code Examples
Java7 New Features and Code ExamplesNaresh Chintalcheru
 
Parcours Facilitateur professionnel de dynamiques collaboratives
Parcours Facilitateur professionnel de dynamiques collaborativesParcours Facilitateur professionnel de dynamiques collaboratives
Parcours Facilitateur professionnel de dynamiques collaborativesFormapart
 
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...ZeroTurnaround
 
Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"Michael Harlaut
 
Stateless authentication for microservices
Stateless authentication for microservicesStateless authentication for microservices
Stateless authentication for microservicesAlvaro Sanchez-Mariscal
 
Dockercon State of the Art in Microservices
Dockercon State of the Art in MicroservicesDockercon State of the Art in Microservices
Dockercon State of the Art in MicroservicesAdrian Cockcroft
 
Backday Xebia : Découvrez Spring Boot sur un cas pratique
Backday Xebia : Découvrez Spring Boot sur un cas pratiqueBackday Xebia : Découvrez Spring Boot sur un cas pratique
Backday Xebia : Découvrez Spring Boot sur un cas pratiquePublicis Sapient Engineering
 
Sondage opinion way pour wincor nixdorf les français et la fermeture annonc...
Sondage opinion way pour wincor nixdorf   les français et la fermeture annonc...Sondage opinion way pour wincor nixdorf   les français et la fermeture annonc...
Sondage opinion way pour wincor nixdorf les français et la fermeture annonc...OpinionWay
 

Viewers also liked (20)

Git USI 2010
Git USI 2010Git USI 2010
Git USI 2010
 
Git Agile France 2010
Git Agile France 2010Git Agile France 2010
Git Agile France 2010
 
Le Facilitateur, un role encore meconnu
Le Facilitateur, un role encore meconnuLe Facilitateur, un role encore meconnu
Le Facilitateur, un role encore meconnu
 
My own preferred testing tools - Paris JUG 2011
My own preferred testing tools - Paris JUG 2011My own preferred testing tools - Paris JUG 2011
My own preferred testing tools - Paris JUG 2011
 
Let's make this test suite run faster - Paris JUG 2011
Let's make this test suite run faster - Paris JUG 2011Let's make this test suite run faster - Paris JUG 2011
Let's make this test suite run faster - Paris JUG 2011
 
Let's make this test suite run faster
Let's make this test suite run fasterLet's make this test suite run faster
Let's make this test suite run faster
 
Let's make this test suite run faster! SoftShake 2010
Let's make this test suite run faster! SoftShake 2010Let's make this test suite run faster! SoftShake 2010
Let's make this test suite run faster! SoftShake 2010
 
Spring 4 en spring data
Spring 4 en spring dataSpring 4 en spring data
Spring 4 en spring data
 
Java7 New Features and Code Examples
Java7 New Features and Code ExamplesJava7 New Features and Code Examples
Java7 New Features and Code Examples
 
Get ready for spring 4
Get ready for spring 4Get ready for spring 4
Get ready for spring 4
 
Parcours Facilitateur professionnel de dynamiques collaboratives
Parcours Facilitateur professionnel de dynamiques collaborativesParcours Facilitateur professionnel de dynamiques collaboratives
Parcours Facilitateur professionnel de dynamiques collaboratives
 
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
 
Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"Webinar "Alfresco en une heure"
Webinar "Alfresco en une heure"
 
Stateless authentication for microservices
Stateless authentication for microservicesStateless authentication for microservices
Stateless authentication for microservices
 
Dockercon State of the Art in Microservices
Dockercon State of the Art in MicroservicesDockercon State of the Art in Microservices
Dockercon State of the Art in Microservices
 
Backday Xebia : Découvrez Spring Boot sur un cas pratique
Backday Xebia : Découvrez Spring Boot sur un cas pratiqueBackday Xebia : Découvrez Spring Boot sur un cas pratique
Backday Xebia : Découvrez Spring Boot sur un cas pratique
 
Correcion parcial 1 corte
Correcion parcial 1 corteCorrecion parcial 1 corte
Correcion parcial 1 corte
 
Practica n2
Practica n2Practica n2
Practica n2
 
Sondage opinion way pour wincor nixdorf les français et la fermeture annonc...
Sondage opinion way pour wincor nixdorf   les français et la fermeture annonc...Sondage opinion way pour wincor nixdorf   les français et la fermeture annonc...
Sondage opinion way pour wincor nixdorf les français et la fermeture annonc...
 
Juan perez formularios access
Juan perez formularios accessJuan perez formularios access
Juan perez formularios access
 

Similar to Git Tours JUG 2010

Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nulsMalk Zameth
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséECAM Brussels Engineering School
 
[Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit. [Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit. Julien CROUZET
 
Pourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfPourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfChris Saez
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienneSylvain Witmeyer
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerThibaut Marmin
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
Retour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continueRetour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continueMoïse Fiscal
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...akramalidrissi1
 
Docker, ça mange quoi au printemps
Docker, ça mange quoi au printempsDocker, ça mange quoi au printemps
Docker, ça mange quoi au printempsJulien Maitrehenry
 
Julien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsJulien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsWeb à Québec
 

Similar to Git Tours JUG 2010 (20)

Git Chti JUG
Git Chti JUGGit Chti JUG
Git Chti JUG
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
 
SVN to GitHUb
SVN to GitHUbSVN to GitHUb
SVN to GitHUb
 
[Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit. [Meetup] Optimiser ses builds Docker avec BuildKit.
[Meetup] Optimiser ses builds Docker avec BuildKit.
 
Javascript proprement
Javascript proprementJavascript proprement
Javascript proprement
 
Les bases de git
Les bases de gitLes bases de git
Les bases de git
 
Pourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfPourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdf
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
Retour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continueRetour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continue
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
Introduction à git
Introduction à gitIntroduction à git
Introduction à git
 
2011 06-pres
2011 06-pres2011 06-pres
2011 06-pres
 
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
 
Devops - Git - VSTS
Devops - Git - VSTSDevops - Git - VSTS
Devops - Git - VSTS
 
VSTS Git
VSTS GitVSTS Git
VSTS Git
 
Docker, ça mange quoi au printemps
Docker, ça mange quoi au printempsDocker, ça mange quoi au printemps
Docker, ça mange quoi au printemps
 
Julien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsJulien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printemps
 

Git Tours JUG 2010

  • 1. La gestion de configuration qui vous veut du bien
  • 2. Faisons connaissance David Gageot CTO algodeal.com The Crowd Sourced Quant Hedge Fund @dgageot javabien.net
  • 3. Nous allons parler de... Gestion Refactoring de sources Gain de temps Intégration continue Travail en équipe
  • 4. ...mais aussi de... Bottes Yoda de Foin Sandwich au fromage Men in Black
  • 5. Ca vous va ? Photo: http://www.flickr.com/photos/91082225@N00/3271601712
  • 6. Git Genre : Gestion de version Date de naissance : 2005 Créateur : Linus Torvald Licence : GPL Signes distinctifs : Pas besoin de serveur Chaque utilisateur a une copie de l’historique Fonctionne en déconnecté Photo:http://getch.files.wordpress.com/2009/02/mask-linus_torvalds.jpg
  • 8. Avant d’aller plus loin... Oubliez tout ce que vous savez http://www.filmbuffonline.com/FBOLNewsreel/wordpress/wp-content/uploads/2009/10/MenInBlack1.jpg
  • 9. Pas de temps à perdre ? Git en action Photo: http://www.flickr.com/photos/zoutedrop/2317065892/
  • 10. mvn eclipse:eclipse ne fonctionne plus ! Depuis quand ? Quelle version ? Photo: http://malcontenta.blog.lemonde.fr/files/2008/06/chaplin-les-temps-modernes.1212659628.jpg
  • 11. Tester toutes les versions précédentes ? Photo: http://www.flickr.com/photos/tarchamps/2835943555/sizes/l/
  • 12. Dichotomie : La dichotomie (« couper en deux » en grec) est, en algorithmique, un processus itératif ou récursif de recherche où, à chaque étape, on coupe en deux parties (pas forcément égales) un espace de recherche qui devient restreint à l'une de ces deux parties. Wikipedia
  • 14. Tester toutes les versions depuis la fin t
  • 15. Tester toutes les versions depuis la fin KO t
  • 16. Tester toutes les versions depuis la fin OK KO t
  • 17. Tester toutes les versions depuis la fin OK 6 5 4 3 2 1 KO t
  • 18. Tester toutes les versions depuis la fin OK 6 5 4 3 2 1 KO Dichotomie OK KO
  • 19. Tester toutes les versions depuis la fin OK 6 5 4 3 2 1 KO Dichotomie OK KO
  • 20. Tester toutes les versions depuis la fin OK 6 5 4 3 2 1 KO Dichotomie OK 1 KO
  • 21. Tester toutes les versions depuis la fin OK 6 5 4 3 2 1 KO Dichotomie OK 1 KO
  • 22. Tester toutes les versions depuis la fin OK 6 5 4 3 2 1 KO Dichotomie OK 1 KO
  • 23. Tester toutes les versions depuis la fin OK 6 5 4 3 2 1 KO Dichotomie OK 2 1 KO
  • 24. Tester toutes les versions depuis la fin OK 6 5 4 3 2 1 KO Dichotomie OK 2 1 KO
  • 25. Tester toutes les versions depuis la fin OK 6 5 4 3 2 1 KO Dichotomie OK 2 3 1 KO
  • 26. Tester toutes les versions depuis la fin OK 6 5 4 3 2 1 KO O(n) Dichotomie OK 2 3 1 KO O(log n)
  • 27. A la main, ça reste long Photo: http://www.wallfizz.com/nature/plaine-et-prairie/2714-botte-de-foin-dans-un-champ-WallFizz.jpg
  • 28. Surtout avec des branches Photo: http://farm1.static.flickr.com/154/356715278_0e0cfe107c.jpg
  • 29. Git bisect (démo) Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 31. Partageons quelques tours de magie « La gestion de configuration sans serveur » « Le merge omniscient » « Le build incassable » Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 32. « La gestion de configuration sans serveur » Photo: http://www.allocine.fr/film/fichefilm-20588/affiches/detail/?cmediafile=18930405
  • 33. Mettre un répertoire en gestion de configuration Sans serveur, sans administrateur
  • 34. Mettre un répertoire en gestion de configuration Quand ? Avant d’éditer des fichiers de configuration Pour préparer une démo Avant de mettre à jour Eclipse ... Où ? Clef USB, Disque externe Permet de se faire la main sur Git
  • 35. Git & Gitx (démo) Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 36. Commits locaux Amélioration Correctif Première version
  • 37. Branches locales master branche Amélioration Ajout 2 Correctif Ajout 1 Première version
  • 38. Fusion de branches master merge branche branche Amélioration Ajout 2 Correctif Ajout 1 Première version
  • 39. One more thing... master Suite fonctionnalité B Suite fonctionnalité A Début fonctionnalité B Début fonctionnalité A
  • 40. Git rebase -i master Suite fonctionnalité B Début fonctionnalité B Suite fonctionnalité A Début fonctionnalité A
  • 41. Git rebase -i (suite) master Fonctionnalité B Fonctionnalité A
  • 42. Partagé Faire une copie locale de tout l’historique Pousser/récupérer les modifications
  • 43. Partagé Vous savez presque tout ! Faire une copie locale de tout l’historique Pousser/récupérer les modifications
  • 44. Partagé Partage de sources dans une équipe Pas de notion de maître / esclave Chacun peut faire des modifications et récupérer celles des autres Pas d’administrateur
  • 45. Cercles de confiance Référence pull Committer
  • 46. Cercles de confiance Mode Open Source : noyaux linux Pas de droits d’accès Pas d’administrateur Modèle pour une grosse équipe
  • 47. Centralisé Créer un repository central Faire une copie locale
  • 48. Centralisé A la Subversion Chaque clone connait tout l’historique Travail en mode déconnecté Backup gratuite (Encore un administrateur de moins...)
  • 50. Comme à la maison Git permet de suivre son propre workflow Photo: http://www.e-cart.biz/stores/vintage-metal-art/images/custom_tailor.gif
  • 51. Un vrai projet (démo) Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 52. Collaborer, ça veut dire quoi ? Fichiers Développeurs
  • 54. «Le merge omniscient» Photo: http://www.computerweekly.com/PhotoGalleries/235697/944_20_Cerebro-X-Men-Origins-Wolverine-Gadgets-and-Weapons.JPG
  • 55. Faire un merge c’est difficile Frein au refactoring Photo: http://img4.southernliving.com/i/2007/01/grilled-cheese/melted-cheese-l.jpg
  • 56. Cas d’école Modifier un fichier pendant qu’un autre développeur le renomme Casse tête assuré
  • 57. Exemples Renommer tous les packages com.tech4quant en com.algodeal Découper un projet maven en sous projets Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 58. Keep it Simple Stupid Pas besoin de plugin. Juste find, mv, sed
  • 59. Keep it Simple Stupid
  • 60. Sans code freeze Un Build Manager dans la salle ? Photo: http://flickr.com/photos/8459432@N03/3446187475
  • 61. Un vrai projet Java vu avec l’outil Gource (démo) Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 62. «Le build incassable» Photo: http://4.bp.blogspot.com/_OhGGUzXs2IY/SlcDgkq4riI/AAAAAAAAB3Y/5uoio0yUue8/s1600-h/Affiche+1.jpg
  • 63. Intégration continue Hudson, Cruise Control, Team City ?
  • 64. Et si le build n’était jamais cassé ?
  • 65. Un petit script suffit
  • 67. Partagé Perso Build privé Mon Poste de travail
  • 68. Partagé Perso Build privé Mon Poste de travail
  • 69. Partagé Sync Perso Build privé Mon Poste de travail
  • 70. Partagé Teste Sync Perso Build privé Mon Poste de travail
  • 71. Partagé puis publie Teste Sync Perso Build privé Mon Poste de travail
  • 72. Plus de pause café pendant le build Photo: http://farm3.static.flickr.com/2698/4041033176_80072af942.jpg
  • 73. Cette présentation est loin d’être exhaustive add -p checkout revert cherry-pick diff reset filter-branch stash hooks log tag tig git blame instaweb whatchanged clean
  • 74. «Git demain adopter tu dois, jeune Padawan» Photo: http://networksecurityip.files.wordpress.com/2007/11/yoda.jpg
  • 76. GitX
  • 77. Git-svn Passerelle bi-directionnelle vers Subversion Permet de travailler sous git tout en publiant dans SVN
  • 78. Limites de Git-svn Pas accès à toute la puissance de git. Pas compatible avec toutes les mises en oeuvre de SVN
  • 80. Faisons connaissance David Gageot CTO algodeal.com The Crowd Sourced Quant Hedge Fund @dgageot javabien.net

Editor's Notes

  1. cd /Volumes/HD2/workspace/DemoGit/Grid git bisect reset git bisect start HEAD VERSION1.1.3 git run ../maveneclipse.sh gitx