Organiser efficacement son depot de code par Jean Marc Fontaine

Post on 20-Jun-2015

789 views 0 download

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.

Transcript of Organiser efficacement son depot de code par Jean Marc Fontaine

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 ?

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

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

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

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

13/07/11 ALTER WAY - Titre

Gérer les branches (1/2)

» Branche par version / par fonctionnalités

13/07/11 ALTER WAY - Titre

Gérer les branches (2/2)

» Approche hybride

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

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

13/07/11 ALTER WAY - Titre

Intégrer des éléments tiers

» svn:externals

» Submodules Git

13/07/11 ALTER WAY - Titre

Interaction avec l'extérieur

» Hooks

» Messages de commit #42 Fixes 42 TM45

13/07/11 ALTER WAY - Titre

Manipuler l'historique (1/2)

» Modification des informations de commit

» Reflog Git

13/07/11 ALTER WAY - Titre

Manipuler l'historique (2/2)

» Rebase interactif avec Git

13/07/11 ALTER WAY - Titre

Effectuer la maintenance

» Subversion : dump, hotcopy

» Git : Copie du dépôt

13/07/11 ALTER WAY - Titre

Merci !

» Email : jm@jmfontaine.net

» Twitter : jmfontaine

» Blog : www.jmfontaine.net

» Autre blog : www.industrialisation-php.net