git développez autrement

Post on 18-Jul-2015

189 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

DÉVELOPPEZ AUTREMENT

RETOURD'EXPÉRIENCE“pourquoi je me suis intéressé à GIT”

LE CONTEXTE2008, chez un éditeur de soft au luxembourgLe produit est sous SubversionDifférentes versions parralèlles à maintenir (3.9, 4.0,etc.)Des versions customs pour certains clientsApplication découpée en modulesEquipes de développement dans différents sites (LU,FR, ZA, SP)Besoin de développer off-line (dans l'avion, chez unclient, etc. )

LE CHOIX DE GITDistribuéWorkflow adaptableIntégrations avec nos outils (forge, PIC, etc.)

MISE EN PLACEWorkflow basé sur des topic-branches:un ticket = une brancheLes versions de maintenance sur des branches à longtermeRoles d'intégrateurs

CONTSTATPremières semaines difficles (notamment les merges)pour les non-teckos, mais réglé par une formationinterne d'une demi journéeOutils s'adapte aux processus en places (et nonl'inverse)Productivité et qualité amélioré après quelquessemaines.

HISTORIQUE“GIT (noun): a person who is deemed to be

despicable or contemptible”

2005Linus Torvalds initie le projet pour le Kernel Linux car il a

besoin de changer de CVS (BitKeeper) rapidement.

Il décide d'arrêter Linux tant que ce n'est pas fait.

DESIGNDistribuéSûre (aucune perte de données)RapideEt surtout :prendre CVS comme exemple de ce qu'il ne faut pas faire(ie. Subversion)

RÉALISATIONDémarré le 3 avril 2005Annoncé le 6 avril 20051ère release du Kernel avec GIT, le 16 juin 2005Le 26 juillet, le projet passe en maintenance et passedans les mains de Junio Hamano (toujours mainteneur).

CARACTÉRITIQUESPRINCIPALES

“Au final c'est quoi GIT?”

DVCSComplètement distribuéEn ligne de commandeIl n'utilise pas de deltas mais des "packfiles", ce qui ledifférencie des autres DCVSSupport de gros projetsFait pour le merge et la gestion des branchesOrienté boite à outilsBien intégré (par exemple, utilise des protocolesexistants)

DELTAS

PACKFILES

HISTORIQUE

FONCTIONNEMENT“C'est compliqué?”

LES BASESToujours avoir à l'esprit que GIT est distribué

Une sheat cheet intérative

LES BRANCHES...

... LES BRANCHESTypes

LocalRemoteLocal tracking Remote

UtilisationTopic branchesLong term branchesWorflow based branches

Statégies de fusionMergeRebaseCherry pick

MERGE...

...MERGE

GIT FLAVOURS“Killer features”

git stash : la cachette

git rebase : faire le ménage

git cherry-pick : la ceuillette aux commits

git submodules : travailler avec plusieurs dépôts

git commit --amend : corriger un commit

git bisect : l'arme ultime pour isoler le commit

fautif

WORKFLOWS“Je fait ce qu'il me plait...”

SUBVERSION-STYLE WORKFLOWUn dépots distant qui centralise les dépôts locaux.

Attention aux merges!

INTEGRATION MANAGER WORKFLOWUne seule personne (l'intégration manager) fait les merges

et commit vers le blessed repository

DICTATOR AND LIEUTENANTS WORKFLOWModèle à la Linux Kernel.

Pour les gros projets

TOOLS

SCM: git-svn, git-cvs, subgit, etc.GUI: TortoiseGit, gitg, giggle, SourceTree, etc.Cloud/Web: Unfuddle, BitBucket, SourceForge, etc.Admin: Gitorious, Gitblit, etc.Entreprise: Github, Atlassion Stash, etc.Kikkoolol: Gource

GITHUB

RÉFÉRENCES

top related