Git-Merge 2015

0

Vous ne le savez sûrement pas car vous étiez tous à DevoxxFr mais cette année il y avait en même temps la troisième édition de Git Merge, la conférence autour de Git.

Édition particulière car en plus c’était les 10 ans de Git !

Cela s’étalait sur 2 jours à la Gaîté lyrique :

  • 08/04 : contributor summit ou expert training
  • 09/04 : journée de conférences suivie de la soirée d’anniversaire

Jour 1

N’étant pas contributeur, je n’ai pas assisté au contributor summit mais vous pouvez en trouver un compte-rendu ici : en conclusion beaucoup de réflexions sur la gestion des gros dépôts (plus en terme d’historique et références qu’en terme de gros blobs).

Par contre j’ai assisté à l’expert training qui était blindé : je me suis retrouvé sur un coin de table à 90° par rapport à la scène, pas des plus confortable… En tout cas très bonne formation de Brent Beer secondé par Christophe Porteneuve.

Après un petit tour dans la base d’objet Git (je conseille la lecture de ProGit : Git Internals – Git Objects, ainsi que jouer avec git-draw pour visualiser les objets), on s’est amusé à extraire un dossier avec filter-branch pour le transformer en submodule.

Ensuite, Brent a fait le tour de toutes les possibilités offertes par le rebase en mode interactif (et j’ai été le seul de la salle a avoir déjà utilisé la commande exec), ce qui a amené au débat classique « merge ou rebase », ce à quoi Christophe propose son excellent article : Getting solid at Git rebase vs. merge

Enfin, on a eu droit à une démo très complète de l’utilisation de git rerere. Ce qui a dû éclairer beaucoup de monde sur les avantages de cette commande : effectuer régulièrement des simulations de mise à jour d’une branche de longue durée afin de faciliter le merge (ou rebase) final sans avoir des tonnes de merges de mise à jour (qui n’aident vraiment pas le bisect).

Jour 2

Git at Google: Making Big Projects (and Everyone Else) Happy

Par Dave Borowitz, Google

Chez Google, ils travaillent sur des gros projets, ce qui peut vite être contraignant. Parmi ces projets, il y a Adroid qui prend jusqu’à 17 Gio ou encore Chrome.

Dave a présenté différentes solutions pour améliorer les choses :

  • splitter le projet en plusieurs dépôts. Ensuite il est possible d’utiliser les submodules mais Google a préféré développer un petit wrapper que tous les développeurs Android doivent maintenant bien connaître : git-repo
  • l’utilisation de bitmaps pour améliorer drastiquement les performances de comptage des objets. Cette astuce, issue de JGit, est intégrée dans git depuis la 2.0
  • pour les clones, Google utilise des bundles servis en statique et mis à jour incrémentalement. Git-repo tente d’ailleurs d’accéder à ces bundles avant de retomber sur un clone classique.
  • Google utilise aussi une archi spécifique basée sur leurs propres technos (BigTable)

Plein de petites astuces pour améliorer vos performances sur vos serveurs Git.

Teaching People Git

Par Emma Jane Hogbin Westby

Emma Jane a compris qu’il était compliqué d’enseigner Git. Du coup elle a revu sa copie et a changer la façon classique de faire (apprendre les commandes) pour s’orienter vers une approche plus proche des cas d’utilisation des personnes à former. Elle propose ainsi de partir de la façon de travailler et des process des élèves pour ensuite leur enseigner leur utilisation de Git dans leur contexte.

Les slides sont disponibles ici et un livre sortira prochainement : Git for Teams.

Great Artists Steal: Adding Git Support to Microsoft Visual Studio

Par Edward Thomson, Microsoft

Edward nous a raconté l’épopée Git chez Microsoft : comment ils sont passés de « Et si on faisait du décentralisé avec TFS ? » à « Et si on faisait du Git dans TFS ? » à finalement « Et si on intégrait une librairie Git dans Visual Studio ? ».

Une histoire bien racontée où on peut apprendre que certains avocats de Microsoft utilisent Git.

Beyond Source Code Versioning

Par Dirk Lehmann, SAP

Dirk nous a présenté le workflow de déploiement continue du projet SAP du site de co-voiturage TwoGo. Ils arrivent maintenant à une vitesse de croisière d’un déploiement par jour ce qui est énorme pour du SAP où la norme est plutôt d’un déploiement par an au mieux.

Scaling Git at Twitter

Par Wilhelm Bierbaum, Twitter

Chez Twitter, ils ont décidé de n’utiliser qu’un seul gros dépôt! Cela a ses avantages, mais malheureusement aussi pas mal d’inconvénients (de performances principalement).

Du coup, de même que Facebook ont patché Mercurial, Twitter ont patché Git :

  • utilisation d’inotify pour traquer les modifications de fichiers
  • un mécanisme de ‘journal’ pour améliorer les fetchs

Ils tentent de garder les modifications minimales et peut-être que tout cela remontera dans Git si leur système convient à la majorité.

Building a Git Extension with First Principles

Par Rick Olson, GitHub

La veille, GitHub avait annoncé le lancement de Git Large File Storage. On a donc eu droit à la présentation de ce nouvel outil.

Le principe est de permettre la gestion des gros fichiers (GitHub limite à 100Mo) en les exportant dans un système de stockage externe et de les lier au contenu du dépôt via le mécanisme de filtre (clean/smudge) de Git.

Par défaut, le client se branche sur la solution de GitHub, mais il est possible de brancher sur n’importe quel service de stockage implémentant l’API JSON qui va bien. Des plugins pour les principaux gestionnaires d’artefacts ne devraient pas tarder à arriver…

The Challenge of Monorepos: Strategies from git-core and open source

Par John Garcia, Atlassian

On découvre qu’Atlassian est en train de développer aussi une solution pour gérer les gros fichier : git lob.

Le tout sur des principes équivalents.

Infrastructure as Code: Manage your architecture with Git

Par Danilo Poccia, Amazon

Amazon présente son outil Elastic Beanstalk qui permet de gérer votre configuration AWS dans Git et d’associer différentes branches à différents environnement : vous poussez sur une branche et l’environnement associé se met à jour automatiquement.

Conclusion

Git a encore plein d’évolutions dans les cartons et l’écosystème qui se construit autour est assez impressionnant.

Partagez cet article.

A propos de l'auteur

Ajouter un commentaire