22
RMLL 2011 Gérer son dépôt de code

Organiser efficacement son depot de code par Jean Marc Fontaine

Embed Size (px)

DESCRIPTION

Cette conférence dépoussière l’usage du dépôt de code et le replace au centre de l’usine de développement : les développeurs y poussent du code, l’intégration continue l’analyse, l’outil de déploiement l’envoie vers les serveurs.Il est capital d’organiser efficacement le dépôt de code. Cela passe notamment par sa sécurisation, le choix des politiques de commit et de branchage ou encore ses interactions avec l’extérieur.Nous verrons comment répondre à ses problématiques avec les deux outils phares que sont Subversion et Git.

Citation preview

Page 1: Organiser efficacement son depot de code par Jean Marc Fontaine

RMLL 2011

Gérer son dépôt de code

Page 2: Organiser efficacement son depot de code par Jean Marc Fontaine

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 »

Page 3: Organiser efficacement son depot de code par Jean Marc Fontaine

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

Page 4: Organiser efficacement son depot de code par Jean Marc Fontaine

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

Page 5: Organiser efficacement son depot de code par Jean Marc Fontaine

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

Page 6: Organiser efficacement son depot de code par Jean Marc Fontaine

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

Page 7: Organiser efficacement son depot de code par Jean Marc Fontaine

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

Page 8: Organiser efficacement son depot de code par Jean Marc Fontaine

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

Page 9: Organiser efficacement son depot de code par Jean Marc Fontaine

13/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

Page 10: Organiser efficacement son depot de code par Jean Marc Fontaine

13/07/11 ALTER WAY - Titre

Plusieurs dépôts

» Multiplication des accès

» Facilité à définir des droits fins

» Les projets sont indépendants

Page 11: Organiser efficacement son depot de code par Jean Marc Fontaine

13/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

Page 12: Organiser efficacement son depot de code par Jean Marc Fontaine

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

Page 13: Organiser efficacement son depot de code par Jean Marc Fontaine

13/07/11 ALTER WAY - Titre

Gérer les branches (1/2)

» Branche par version / par fonctionnalités

Page 14: Organiser efficacement son depot de code par Jean Marc Fontaine

13/07/11 ALTER WAY - Titre

Gérer les branches (2/2)

» Approche hybride

Page 15: Organiser efficacement son depot de code par Jean Marc Fontaine

13/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

Page 16: Organiser efficacement son depot de code par Jean Marc Fontaine

13/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

Page 17: Organiser efficacement son depot de code par Jean Marc Fontaine

13/07/11 ALTER WAY - Titre

Intégrer des éléments tiers

» svn:externals

» Submodules Git

Page 18: Organiser efficacement son depot de code par Jean Marc Fontaine

13/07/11 ALTER WAY - Titre

Interaction avec l'extérieur

» Hooks

» Messages de commit #42 Fixes 42 TM45

Page 19: Organiser efficacement son depot de code par Jean Marc Fontaine

13/07/11 ALTER WAY - Titre

Manipuler l'historique (1/2)

» Modification des informations de commit

» Reflog Git

Page 20: Organiser efficacement son depot de code par Jean Marc Fontaine

13/07/11 ALTER WAY - Titre

Manipuler l'historique (2/2)

» Rebase interactif avec Git

Page 21: Organiser efficacement son depot de code par Jean Marc Fontaine

13/07/11 ALTER WAY - Titre

Effectuer la maintenance

» Subversion : dump, hotcopy

» Git : Copie du dépôt

Page 22: Organiser efficacement son depot de code par Jean Marc Fontaine

13/07/11 ALTER WAY - Titre

Merci !

» Email : [email protected]

» Twitter : jmfontaine

» Blog : www.jmfontaine.net

» Autre blog : www.industrialisation-php.net