1 / 33

Formation à l’utilisation d’un client Subversion Vincent Carpier Florent Guilleux

Formation à l’utilisation d’un client Subversion Vincent Carpier Florent Guilleux http://www.cru.fr/ Paris, 27 Juin 2007. Programme. 9h30 : accueil et introduction à Subversion 10h00 : début des travaux pratiques 12h30 : repas 14h00 : reprise des travaux pratiques 17h30 : fin.

Download Presentation

Formation à l’utilisation d’un client Subversion Vincent Carpier Florent Guilleux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 27 juin 2007 1 Formation à l’utilisation d’un client Subversion Vincent Carpier Florent Guilleux http://www.cru.fr/ Paris, 27 Juin 2007

  2. 27 juin 2007 2 Programme • 9h30 : accueil et introduction à Subversion • 10h00 : début des travaux pratiques • 12h30 : repas • 14h00 : reprise des travaux pratiques • 17h30 : fin

  3. 27 juin 2007 3 Objectifs de la formation • comprendre les concepts de la gestion de version dans Subversion • apprendre les commandes de base et avancées pour gérer le cycle de développement d'un logiciel avec Subversion • maîtriser l'utilisation d'un client Subversion

  4. 27 juin 2007 4 Choix du client Subversion Aujourd’hui : TortoiseSVN ou Subclipse ? • Langage de développement utilisé • Framework de développement • Système d'exploitation • Support / connaissance • Choix d'équipe ? • ..... http://subversion.tigris.org/links.html#clients

  5. 27 juin 2007 5 Organisation des travaux pratiques • En binômes • Un document à suivre avec exercices et quelques explications • N’hésitez pas à nous demander des précisions ou plus d’explications ! • Au cours de la journée quelques présentations pour l’ensemble des participants

  6. 27 juin 2007 6 Introduction à Subversion

  7. 27 juin 2007 7 Subversion est un outil de gestion de version • Permet de gérer l’historique des modifications de son projet • Présenté comme le successeur de CVS • Version actuelle 1.4, la version 1.0 date de février 2004 • Produit open source, supporté par CollabNet • Utilisé par en entreprise et par de nombreux projets du libre (Apache, KDE, Gnome, Python)‏ • Alternative : système décentralisés (voir http://2005.jres.org/paper/2.pdf)‏

  8. 27 juin 2007 8 La gestion de version apporte de nombreux gains • Retours en arrière et corrections toujours possibles • Historique de toutes les opérations • Indispensable pour le travail en équipe • Travaux en parallèle sur plusieurs branches • Pour du code mais aussi un site web, de la doc…

  9. 27 juin 2007 9 … qui justifient l’effort de prise en main trunk patch version commit modules diff tag merge branches BASE repository update HEAD conflict check out

  10. 27 juin 2007 10 Les étapes de cette formation • Découvrir les concepts de Subversion • Utiliser les opérations de base • Travailler à plusieurs avec Subversion • Gérer le cycle de développement d’un logiciel • Fonctionnalités avancées

  11. 27 juin 2007 11 Un dépôt central et une copie de travail Référentiel trunk/ 1 3 2 svn checkout svn commit svn commit Copie de travail d’Alice

  12. 27 juin 2007 12 Gérer des conflits

  13. 27 juin 2007 13 2 Des conflits peuvent survenir Copie de travail de Bob svn commit svn checkout Référentiel trunk/ 1 svn checkout svn commit Copie de travail d’Alice

  14. 27 juin 2007 14 Résolution des conflits Copie de travail de Bob svn update svn commit svn checkout Référentiel trunk/ 1 2 svn commit svn checkout Copie de travail d’Alice

  15. 27 juin 2007 15 Si les modifications concernent des lignes différentes État « merGed » : G Bob Zéro Un Deux Trois QUATRE Zéro Un Deux Trois Quatre svn commit svn update Zéro Un Deux Trois QUATRE Un Deux Trois Quatre Un Deux Trois QUATRE Alice

  16. 27 juin 2007 16 Si les modifications concernent les mêmes lignes État « Conflict » : C Un <<<< .mine Two ==== Dos >>>> .r2 Deux Trois QUATRE Un Two Trois Quatre svn update Un Deux Trois Quatre Un Dos Trois QUATRE

  17. 27 juin 2007 17 Si les modifications concernent les mêmes lignes Un <<<< .mine Two ==== Dos >>>> .r2 Trois QUATRE Un Two Trois QUATRE Un Two Trois QUATRE svn resolved résolution manuelle svn commit Un Two Trois QUATRE État « Conflict » : C

  18. 27 juin 2007 18 6. Enregistrer ses modifications • svn commit 2. Apporter des modifications • svn add / copy / delete / move 3. Visualiser les modifications • svn status (-u) / diff / revert Cycle de travail typique • 1. Mettre à jour sa copie de travail • svn update 5. Mise à jour / Synchro svn update 4. Fusionner les modifications svn merge / resolved

  19. 27 juin 2007 19 Les étiquettes

  20. 27 juin 2007 20 REL-0.9 Une étiquette est un nom donné à une révision Référentiel 482 418 345 trunk/ 215 … … … REL-1.1a Étiquettes

  21. 27 juin 2007 21 482 … 420 Une étiquette est stockée comme une copie Référentiel trunk/ 418 345 215 … … tags/REL-0.9 419 tags/ tags/REL-1.1a

  22. 27 juin 2007 22 Les branches

  23. 27 juin 2007 23 Les contraintes posées par la gestion de multiples versions d'un logiciel (1)‏ • pour préparer la sortie d'une nouvelle version, on ne travaille plus que sur la correction de bogues • mais pendant ce temps d'autres développeurs peuvent vouloir introduire de nouvelles fonctionnalités pour les futures versions

  24. 27 juin 2007 24 Les contraintes posées par la gestion de multiples versions d'un logiciel (2)‏ • quand on corrige un bogue dans une version, il faut pouvoir reporter cette correction dans les autres versions maintenues

  25. 27 juin 2007 25 Les contraintes posées par la gestion de multiples versions d'un logiciel (3)‏ • certaines fonctionnalités d'une version ont peut-être disparues dans des version ultérieures • mais tant que cette version est maintenue activement, il faut pouvoir corriger les bogues de ces fonctionnalités

  26. 27 juin 2007 26 Les branches sont utiles pour gérer ces contraintes • Une branche est une ligne de développement parallèle • Elle a son propre historique et suivi des modifications • La fonctionnalité de merge permet de reporter des modifications réalisées dans une branche dans le trunk et vice versa (ou entre branches)‏

  27. 27 juin 2007 27 RB-1.0 Exemple du cycle de préparation, diffusion et maintien d'une version REL-1.0.2 REL-1.0.1 REL-1.0 étiquettes Diffusion de la version Diffusion de la version Diffusion de la version Début de la préparation de la nouvelle version Correction bogues Correction bogues Report corrections Report corrections Report corrections trunk Correction bogues Nouvelles fonctionnalités Début de la préparation d’une nouvelle version RB-1.1

  28. 27 juin 2007 28 BUG-2561 RB-O.8 TRY-new_cache Exemples d’utilisation de branches Branche de correction de bogue Branche de diffusion trunk Ligne principale Branche d’expérimentation

  29. 27 juin 2007 29 Une branche est stockée comme une copie Référentiel 482 418 trunk/ 250 215 … … … … 217 216 314 branches/ RB-0.8 315 REL-0.8 tags/

  30. 27 juin 2007 30 Conclusion

  31. 27 juin 2007 31 A l’usage Subversion se révèle rapidement indispensable • Cela vaut le coup de s’entraîner à l’utiliser • Une fois les concepts acquis c’est simple à utiliser • Une fois habitué il paraît difficile de s’en passer

  32. 27 juin 2007 32 Il faut plus que connaître les commandes • S’assurer que tous les développeurs du projet sauront l’utiliser : convaincre et former • Mettre en œuvre petit à petit les fonctionnalités de Subversion • Se mettre d’accord sur des pratiques d’utilisations • Définir des règles de nommage • Définir comment l’on utilise les branches et étiquettes • Dans quels cas utilise-t-on le locking ? Les propriétés ? • Documenter le tout

  33. 27 juin 2007 33 Ressources • http://www.cru.fr/faq/sourcesup/gestion_src/ • http://freshmeat.net/browse/1109/

More Related