Organiser efficacement son dépôt de code - RMLL 2011

Preview:

Citation preview

RMLL 2011

Gérer son dépôt de code

Qui suis-je ?

» Jean-Marc Fontaine

» Consultant pour Alter Way Consulting

» Président de l'AFUP

» Formateur / Professeur vacataire à l'université de Saint Quentin

» Auteur du blog Industrialisation-PHP.com

» Co-auteur du livre blanc « Industrialisation PHP »

Un outil indispensable

» On ne travaille jamais seul

» On oublie

» On essaye

» On se trompe

» Écrire du code n'est qu'une petite partie du travail

Au cœur de l'usine de développementAu cœur de l'usine de développement

Centralisé ou décentralisé ?Centralisé ou décentralisé ?

Dépôts centralisé

» Approche initiale

» Topologie en étoile

» CVS, Subversion, Perforce, SourceSafe

» Avantages :– Workflows simples à comprendre– Maintenance centralisée– Sécurisation simplifiée

» Inconvénients :– Manque de souplesse– Impossibilité de travailler hors-ligne– Manipulation de l'historique limitée

Dépôts décentralisés

» Approche récente

» Tout le monde est potentiellement client et serveur

» Git, Mercurial, Bazaar

» Avantages :– Possibilité de travailler hors-ligne– Workflows libres– Manipulation de l'historique aisée

» Inconvenients :– Sécurisation plus compliquée– Courbe d'apprentissage plus longue

Un ou plusieurs dépôts ?Un ou plusieurs dépôts ?

22/07/11 ALTER WAY - Titre

Un dépôt

» Gestion des accès facilité

» Dépôt potentiellement très gros

» Difficulté à gérer finement les droits

» Impossible à faire avec Git

22/07/11 ALTER WAY - Titre

Plusieurs dépôts

» Multiplication des accès

» Facilité à définir des droits fins

» Les projets sont indépendants

22/07/11 ALTER WAY - Titre

Sécuriser son dépôt

» Gérer les accès

» Gérer les droits

» Gérer la communication– Utiliser HTTPS ou SSH

Organiser son dépôtOrganiser son dépôt

22/07/11 ALTER WAY - Titre

Gérer les branches (1/2)

» Branche par version / par fonctionnalités

22/07/11 ALTER WAY - Titre

Gérer les branches (2/2)

» Approche hybride

http://nvie.com/posts/a-successful-git-branching-model/

22/07/11 ALTER WAY - Titre

Gérer les tags

» Les utiliser

» Les nommer de manière cohérente– RELEASE_1.0.0– v1.0.3rc3

» Ne jamais commiter sur un tag

22/07/11 ALTER WAY - Titre

Politique de commit

» Toujours mettre un message concis et pertinent

» Faire des commits atomiques

» Utiliser le message de commit pour interagir avec d'autres outils

22/07/11 ALTER WAY - Titre

Intégrer des éléments tiers

» svn:externals

» Submodules Git

22/07/11 ALTER WAY - Titre

Interaction avec l'extérieur

» Hooks

» Messages de commit– #42– Fixes 42– TM45

22/07/11 ALTER WAY - Titre

Manipuler l'historique (1/2)

» Modification des informations de commit

» Reflog Git

22/07/11 ALTER WAY - Titre

Manipuler l'historique (2/2)

» Rebase interactif avec Git

22/07/11 ALTER WAY - Titre

Effectuer la maintenance

» Subversion : dump, hotcopy

» Git : Copie du dépôt

22/07/11 ALTER WAY - Titre

Merci !

» Email : jm@jmfontaine.net

» Twitter : jmfontaine

» Blog : www.jmfontaine.net

» Autre blog : www.industrialisation-php.net

Recommended