Vous êtes sur la page 1sur 20

Subversion et TortoiseSVN

Utilisation et bonnes pratiques

Subverquoi ? - Prsentation de SVN

Subversion, un gestionnaire de code source (SCM) et de versionning Le versionning permet le travail collaboratif
Chacun peut travailler sans craser les fichiers de son voisin Dveloppement : permet un suivi des sources Permet de revenir une version N un instant T

Permet de comparer les versions d!un fic"ier afin de voir ce qui a t modifi Permet de travailler sur plusieurs versions d!un m#me pro$et Version % future & '(D sur un pro$et en cours Dfinition de versions % figes &) garanties comme tant stables *e n!est pas un s+st,me de sauvegarde 2

Subverquoi ? - .utour du dp/t

SVN est un syst !e centralis *entralisation autour d!un % dp/t & 0 repository en anglais1 pour partager l!information
Le dp/t est un serveur qui stoc2e toutes les modifications effectues 3n dveloppeur se connecte en tant que client au dp/t pour rcuprer et4ou partager des modifications effectues sur le dp/t Le dp/t poss,de enregistre l!arborescence de fic"iers du pro$et

"cc s au dp#t
.cc,s en 5TTP essentiellement par l!intermdiaire d!un client SVN Le client de base est la ligne de commande Des clients grap"iques permettent un acc,s plus convivial) notamment dans l!6D7 de Delp"i Tortoise SVN 89 6ntgration dans l!e:plorateur ;indo<s 3

Travail collaboratif = Situation

viter

Travail collaboratif = .vec SVN 0>4?1

Travail collaboratif = .vec SVN 0>4?1

@rganisation ( 3tilisation

@rganisation

$run%, &ranches, $ags


Le Trunk est la ligne de vie du pro$etA % Tronc commun & de dveloppement *orrespond la version la plus $our du pro$et des % pro$ets drivs & Les Branches peuvent correspondre Pro$ets parall,les Dveloppements e:primentau: Les Tags permettent de % figer & 0ou freeBe1 une version 3n tag pour c"aque version livre 0au minimum -1

Dpt SVN bien gr = Projet serein ! Possibilit d!automatiser les livraisons 'ollbac2 de livraison possible en cas de probl,me 5istorique et organisation clairs pour tout le monde
8

3tilisation - *ommandes

'uelques co!!andes courantes


S ig n if ic a t i o n
D c la r e l'a j o u t d 'u n e n o u v e lle r e s s o u r c e p o u r le p r o c h a in c o m m it . R c u p r e e n lo c a l u n e v e r s io n a in s i q u e s e s m t a - d o n n e s d e p u is le d p t . e t t o ie l a c o p ie lo c a le p o u r la r e m e t t r e d a n s u n t a t s t a ! le . " n r e # is t r e le s m o d i$ ic a t io n s lo c a le s d a n s le d p t c r a n t a in s i u n e n o u v e lle v e r s io n . & o p ie d e s r e s s o u r c e s ' u n a u t r e e m p la c e m e n t ( lo c a le m e n t o u d a n s le d p t ) . D c la r e la s u p p r e s s io n d 'u n e r e s s o u r c e e ( is t a n t e p o u r l e p r o c h a in c o m m it ( o u s u p p r im e re s s o u rc e d u d p t ) . d ir e c t e m e n t u n e

Com m ande
add c he c ko ut (c o ) c le a n u p c o m m it ( c i) cop% d e le t e d i$ $ lo c k lo # m e r# e move r e s o lv e d re v e rt sta tus (st) s - it c h up d a te (up ) u n lo c k

& a lc u le l a d i$ $ r e n c e e n t r e d e u ( v e r s io n s ( p e r m e t d e c r e r u n p a t c h ' a p p liq u e r s u r u n e c o p ie lo c a le ) . ) e r r o u i lle u n $ ic h ie r .

D o n n e l e s m e s s a # e s d e c o m m it d 'u n e r e s s o u r c e . & a lc u le l a d i$ $ r e n c e e n t r e d e u ( v e r s io n s e t a p p liq u e c e t t e d i$ $ r e n c e ' la c o p ie lo c a l e . D c la r e le d p la c e m e n t d 'u n e r e s s o u r c e . * e r m e t d e d c la r e r q u 'u n c o n $ lit d e m o d i$ ic a t io n s e s t r s o lu . R e v ie n t ' u n e v e r s io n d o n n e d 'u n e r e s s o u r c e . + e s m o d i$ ic a t io n s lo c a le s s o n t c r a s e s . , n d iq u e le s c h a n # e m e n t s q u i o n t t e $ $ e c t u s . . a s c u le s u r u n e v e r s io n / ! r a n c h e d i$ $ r e n t e d u d p t . 0 e t ' j o u r la c o p ie lo c a le e ( is t a n t e d e p u is la d e r n i r e v e r s io n d is p o n i! le s u r le d p t . R e t ir e u n v e r r o u .

3tilisation - *onflits

Rsolution de conf lits


Dans certains cas SVN ne sait pas fusionner lui-m#me les fic"iers sources ? dveloppeurs ont modifi la m#me portion de code 89 *onflit Dans ce cas SVN vous laisse la main pour une rsolution manuelle Les clients grap"iques permettent de visualiser les diffrences et d!diter les conflits facilement 3ne fois le conflit rsolu) il faut : Signaler la rsolution du conflit 0svn resolved1 *ommit le fic"ier avec le conflit rsolu

Important !!! TOUJOURS rsoudre les conflits en cours NE JAMAIS OMMIT !ES "I #IERS EN ON"$IT NON RESO$U %%%
10

3tilisation - *onflits

11

3tilisation - Proprits

Les proprits sont des !mta"donnes!#


7lles permettent de modifier le comportement standard de SVN La plupart sont destines au fonctionnement interne de SVN *ertaines peuvent #tre tr,s utiles

s$n%ignore
Permet d!ignorer un certain nombre de fic"iers par emplacement ou pattern 0T"umbsAdb) cac"e) logsAAA1 . rgler au dbut d!un pro$et pour viter de versionner des fic"iers inutiles

s$n%e&ternals
Permet d!indiquer une dpendance Par e:emple une librairie maintenue par une autre quipe
6nutile de dupliquer le code dans le dp/t S!il + a des mises $our dans le dp/t dfini en svn:e:ternals) votre copie de travail sera galement mise $our lors de votre proc"ain update

12

*omprendre les branc"es


5 Branches 2 3
r Me ge

8 6 7

10
branche aban onn!e

Trunk

Tags

Version 1.0

Version 1.1

13

Des branc"es : Pour quoi faire ?


Une branche est souvent une ()copie)* du trun% (rpertoire principal) Ligne de vie indpendante 5istorique commun 89 Permet les fusions 7:emple sur un pro$et : Les volutions sont dvelopps sur le trunk 0future release1 Cais des bugs peuvent #tre signals en production et doivent #tre corrigs 89 *ration d!une branc"e pour la correction de bugs uniquement 89 Livraisons effectues partir de la branc"e 89 3ne fois les bugs corrigs) on fusionne les correctifs avec le trun2

1.0

1.1

1.2

2.0

2.1

2.2 2.1.1

3.0 2.1.2
14

Dusion entre branc"es 0Cerge1

+ourquoi fusionner (ou ()!erger)*) ,


Permet de maintenir les branc"es $our entre elles Evite de modifier ? fois du code source 0branc"e F Trun21
La multiple modification manuelle prsente des risques de rgressions SVN fusionne intelligemment 0par diffrentiel1

In t g r e r d e s r v is io n s d u t r u n k d an s u n e b ranch

R in t g r e r le s c h a n g e m e n ts d u n e b r a n c h d a n s le tru n k

A p p liq u e r le s c h a n g e m e n ts e n tre 2 r v is io n s la b ra n ch co u ra n te

15

3tilisation de TortoiseSVN

$ortoiseSVN)- client SVN pour .indo/s 0ntgr 1 l2e3plorateur de fichier Utilise les dossiers 4svn contenant les infor!ations SVN

16

7tat des fic"iers

$ortoise !odifie les icones des fichiers grs par le SVN de !ani re 1 rapide!ent voir leur tat (1 5our, !odifi, en attente d2a5out, en conflit, 444)-

17

@prations avec TortoiseSVN

Voir "uick#ui eTor$oise%V&.' (

18

*onclusion

SVN est un puissant outil de gestion de versions 0ndispensable pour le dveloppe!ent en quipe, voire seul 6 SVN n2est pas un syst !e de sauvegarde 6 +er!et un suivi de versions prcis, 1 condition de bien l2utiliser Ce n2est pas le seul SCM du !arch 6 G6T gagne de plus en plus terrain 0nouvelle gnration) dcentralisAAA1

19

Des Huestions ?

)
20