![Page 1: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/1.jpg)
27 juin 2007 1
Formation à l’utilisation d’un client Subversion
Vincent CarpierFlorent GuilleuxOlivier Lumineauhttp://www.cru.fr/
Rennes, 10 décembre 2008
![Page 2: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/2.jpg)
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
![Page 3: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/3.jpg)
27 juin 2007 3
Objectifs de la formation
1. comprendre les concepts de la gestion de version dans Subversion
2. apprendre les commandes de base et avancées pour gérer le cycle de développement d'un logiciel avec Subversion
3. maîtriser l'utilisation d'un client Subversion
![Page 4: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/4.jpg)
27 juin 2007 4
Choix du client Subversion
Aujourd’hui : TortoiseSVN, Subclipse ou en ligne de commande?
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
![Page 5: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/5.jpg)
27 juin 2007 5
Organisation des travaux pratiques
• 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
![Page 6: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/6.jpg)
27 juin 2007 6
Introduction à Subversion
![Page 7: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/7.jpg)
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.5, 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èmes décentralisés (Git,
Mercurial…)
![Page 8: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/8.jpg)
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…
![Page 9: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/9.jpg)
27 juin 2007 9
… qui justifient l’effort de prise en main
commit
tag branches
repository
HEAD
BASEupdate
version
check out
modules
merge
conflict
diff
patchtrunk
![Page 10: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/10.jpg)
27 juin 2007 10
Les étapes de cette formation
1. Découvrir les concepts de Subversion
2. Utiliser les opérations de base
3. Travailler à plusieurs avec Subversion
4. Gérer le cycle de développement d’un logiciel
5. Fonctionnalités avancées
![Page 11: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/11.jpg)
27 juin 2007 11
Un dépôt central et une copie de travail
Référentiel
Copie de travail d’Alice
svn checkout svn commit svn commit
1 2 3trunk/
![Page 12: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/12.jpg)
27 juin 2007 12
Gérer des conflits
![Page 13: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/13.jpg)
27 juin 2007 13
Des conflits peuvent survenir
Référentiel
svn checkout svn commit
1 2
Copie de travail d’Alice
Copie de travail de
Bobsvn checkout svn commit
trunk/
![Page 14: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/14.jpg)
27 juin 2007 14
Résolution des conflits
Référentiel
svn checkout svn commit
1 2
Copie de travail d’Alice
Copie de travail de
Bobsvn checkout
svn commit
svn update
trunk/
![Page 15: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/15.jpg)
27 juin 2007 15
Si les modifications concernent des lignes différentes
UnDeuxTroisQuatre
ZéroUnDeuxTroisQuatre
UnDeuxTroisQUATRE
ZéroUnDeuxTroisQUATRE
svn update
État « merGed » : G
ZéroUnDeuxTroisQUATRE
svn commit
Bob
Alice
![Page 16: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/16.jpg)
27 juin 2007 16
Si les modifications concernent les mêmes lignes
UnDeuxTroisQuatre
UnTwoTroisQuatre
UnDosTroisQUATRE
Un<<<< .mineTwo====Dos>>>> .r2DeuxTroisQUATRE
svn update
État « Conflict » : C
![Page 17: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/17.jpg)
27 juin 2007 17
Si les modifications concernent les mêmes lignes
Un<<<< .mineTwo====Dos>>>> .r2TroisQUATRE
État « Conflict » : C
UnTwoTroisQUATRE
résolution manuelle
UnTwoTroisQUATRE
svn resolved
UnTwoTroisQUATRE
svn commit
![Page 18: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/18.jpg)
27 juin 2007 18
Cycle de travail typique1. Mettre à jour sa copie de travail
svn update
3. Visualiser les modificationssvn status (-u) / diff / revert
2. Apporter des modificationssvn add / copy / delete / move
4. Fusionner les modifications svn merge / resolved
6. Enregistrer ses modificationssvn commit
5. Mise à jour / Synchrosvn update
![Page 19: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/19.jpg)
27 juin 2007 19
Les étiquettes
![Page 20: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/20.jpg)
27 juin 2007 20
Une étiquette est un nom donné à une révision
Référentiel
215 345 418… … …482
Étiquettes REL-0.9 REL-1.1a
trunk/
![Page 21: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/21.jpg)
27 juin 2007 21
Une étiquette est stockée comme une copie
Référentiel
215 345 418… … …482trunk/
tags/
tags/REL-0.9
tags/REL-1.1a
419
420
![Page 22: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/22.jpg)
27 juin 2007 22
Les branches
![Page 23: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/23.jpg)
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
![Page 24: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/24.jpg)
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
![Page 25: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/25.jpg)
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
![Page 26: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/26.jpg)
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)
![Page 27: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/27.jpg)
27 juin 2007 27
Exemple du cycle de préparation, diffusion et maintien d'une version
trunk
RB-1.0Début de la préparation de la nouvelle version
REL-1.0
Diffusion de la version
étiquettes
Nouvelles fonctionnalités
Correction bogues
Report corrections
Correction bogues
REL-1.0.1
Diffusion de la version
Correction bogues
REL-1.0.2
Diffusion de la version
RB-1.1Début de la
préparation d’une nouvelle version
Report correctionsReport corrections
![Page 28: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/28.jpg)
27 juin 2007 28
BUG-2561
Exemples d’utilisation de branches
trunk
RB-O.8
Ligne principale
Branche d’expérimentation
Branche de diffusion
Branche de correction de bogue
TRY-new_cache
![Page 29: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/29.jpg)
27 juin 2007 29
Une branche est stockée comme une copieRéférentiel
215 250 418… … …482trunk/
tags/
branches/ 216 217 … 314
315
RB-0.8
REL-0.8
![Page 30: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/30.jpg)
27 juin 2007 30
Conclusion
![Page 31: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/31.jpg)
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
![Page 32: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/32.jpg)
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
![Page 33: 27 juin 20071 Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Olivier Lumineau Rennes, 10 décembre 2008](https://reader035.vdocuments.net/reader035/viewer/2022062404/551d9dba497959293b8dd850/html5/thumbnails/33.jpg)
27 juin 2007 33
Ressources
• http://www.cru.fr/faq/sourcesup/gestion_src/
• http://freshmeat.net/browse/1109/