Vous êtes sur la page 1sur 24

KvinFardel

TutorielTortoiseSVN

03/07/09

TutorielTortoiseSVN

Sommaire

Introduction.................................................................................................................3
PrsentationdeTortoiseSVN.....................................................................................4
Installation...................................................................................................................5
ConfigurationdeTortoiseSVN..................................................................................6
UtilisationdeTortoiseSVN..........................................................................................7
1reutilisation:..........................................................................................................7
Misejour.................................................................................................................9
Commit......................................................................................................................9
Gestiond'unconflit..................................................................................................13
Utilisationavance.....................................................................................................16
Gestiondesbranches................................................................................................17
Recommandations...................................................................................................24

2/24

TutorielTortoiseSVN

Introduction

Cepetittutorielvavousapprendrelesbasesdel'utilisationdeTortoiseSVN.Denombreux
pointsneserontpasabordsoupasapprofondismaislasuitedecetutorielvousdevriezpouvoir
utiliserTortoiseSVNpourdvelopperunprojetencollaborationavecd'autresdveloppeurs.Toutes
lespartiesdecetutorielsontimportantessivousnesavezpasraliserl'uned'entreellen'esprezpas
voir l'efficacit de TortoiseSVN dans un gros projet. Ce tutoriel n'est pas long et reste
volontairementunrsumdescommandesutilespourl'utilisationqu'onenferadanslecadredu
projetStics.Sivoussouhaitezplusdedtailslibrevousdevousrendresurlesite:
http://tortoisesvn.net/docs/nightly/TortoiseSVN_fr/
Cettedocumentationestnettementplusconsistanteetnettementpluslongue.Parcontredans
certainepartielatraductionanglaisfranaisn'estpasralise.Nevoustonnezdetombersurdes
paragraphesenanglais!!!
Pourtoutesremarquessurcepetittutoriel:
kevin.fardel@gmail.com

3/24

TutorielTortoiseSVN

PrsentationdeTortoiseSVN
TortoiseSVN est un client opensource gratuit pour le systme de contrle de version
Subversion.C'estdireTortoiseSVNgredesfichiersetdesrpertoirestraversletemps.Les
fichierssontstocksdansunrfrentielcentral.Lerfrentielressemblebeaucoupunserveurde
fichiersordinaire,saufqu'ilmmorisetoutchangementfaitvosfichiersetrpertoires.Celavous
permetdercuprerlesversionsprcdentesdevosfichiersetexaminerl'historiquedecommentet
quandvosdonnesontchang.C'estpourquoibeaucoupdepersonnespensentqueSubversionetles
systmesdecontrledeversionengnralsontunesortedemachineremonterletemps.
Quelques systmes de contrle de version sont aussi des systmes de gestion de
configuration logicielle (GCL). Ces systmes sont spcifiquement conus pour grer des
arborescencesdecodesourceetontbeaucoupdefonctionnalitsspcifiquesaudveloppementde
logiciel comme la comprhension de langages de programmation en natif, ou des outils
d'approvisionnement pour construire le logiciel. Subversion, cependant, n'est pas un de ces
systmes,c'estunsystmegnralquipeuttreutilispourgrer n'importequelle collectionde
fichiers,ycomprisducodesource.
Pourbiencomprendrel'utilitdesubversion(SVN)ilfautprendreunexemple.Supposons
que bob et la sont deux dveloppeurs d'un logiciel. Ces deux personnes vont travailler
conjointementsurcemmeprojet.MaissupposonsquebobtravailleParisetLaMontral.Il
fautquelesdeuxpuissentutiliserlessourcesduprojetenmmetemps,lesmodifierenmmetemps
etsurtoutquelesmodificationsdel'unsoientapportesauxsourcesdel'autreetviceversa.Donc
pourcefaireunserveurSVNestinstallParis.Lessourcessontstocksdansceserveur.

Serveur
avec
lessources
Lire,crireet
modifierlessources

La

Bob

TortoiseSVNvadoncpermettreBobetLadelire,crire,etmodifierlessourcesmais
aussidegrerdiffrentesversionsdessources.

4/24

TutorielTortoiseSVN

Installation
TortoiseSVNfonctionnesurWindows(2000,XPouvista);pourdesversionsantrieursde
WindowsilfauttlchargeruneversiondeTortoiseinfrieurelaversion1.2.0.
L'installationdeTortoiseesttrssimple,unefoislefichierd'installationlancilfautsuivre
lestapesdel'assistant.
Attention : Il faut treadministrateur de la machine pour pouvoir installer Tortoise. Si
jamaisvousn'tespasadministrateurunmessaged'erreurvousl'indiqueradurantl'installation.
Alafindel'installationilvousfautredmarrervotremachine.Aprsceredmarragevous
pouvezconstaterqu'enralisantunclicdroitsurunrpertoire(dansvotreexplorateurWindows)un
nouveaumenuestapparu:

Sicemenun'apparaitpasalorsl'installationc'estprobablementmaldroul.Danscecas
allersurleFAQdusitesuivant:

http://tortoisesvn.tigris.org/faq.html.

5/24

TutorielTortoiseSVN

ConfigurationdeTortoiseSVN.
TortoiseestunCLIENTSVNdoncilvavouspermettredevousconnecterunserveurSVN.Vous
devezavoirenvotrepossessionl'adressedeceserveur.
Cetteadressepeutsetrouversousplusieursformesrsumesdansletableausuivant:
file://

Accsdirectaurfrentielsurdisquelocalourseau.

http://

AccsvialeprotocoleWebDAVunserveurApacheavecSubversion.

https://

Mmechosequehttp://,maisaveccryptageSSL.

svn://

AccsTCP/IPnonauthentifiviaunprotocolepersonnalisunserveursvnserve.

svn+ssh:// Accs TCP/IP authentifi, crypt via un protocole personnalis un serveur


svnserve

Cettemthoded'accsestspcifiparl'adressequevousfournil'administrateurduserveur.
C'est la seule configuration absolument ncessaire pour utiliser Tortoise. Les autres
configurationpeuventtrerglesdans:
cliquedroit
TortoiseSVN>Settings

6/24

TutorielTortoiseSVN

UtilisationdeTortoiseSVN
1reutilisation:
LorsdelapremireutilisationdeTortoisesurvotremachineilfauttoutd'abordrapatrier
l'intgralit des sources du serveur sur votre machine locale (on suppose que des versions
antrieuressontdjendptsurleserveur).Pourcefaire:
Clicdroitsurunrpertoirecrceteffet
SVNCheckout...
Lafentresuivantevas'ouvrir.

Dans le premier champs de cette fentre il faut renseigner l'adressedu rpertoire o se


trouventlessourcessurleserveur.Cetteadressedoittredel'unedesformeexposesdansle
tableaudelapartieprcdentesuivitd'unnomderpertoire.Parexemple:
svn+ssh://nom_du_developpeur@scm.mulcyber.toulouse.inra.fr/svnroot/sticsv69/trunk/
Danscetexemplenousvoyonsquelamthoded'accsestsvn+ssh://ensuiteilyalelogin
dudveloppeursurleserveursuivitde @,puisdel'adresseduserveuretdel'emplacementdu
rpertoireosetrouvelessourcesquel'onsouhaiterapatriersurnotremachine.
7/24

TutorielTortoiseSVN
Dans le second champs il faut remplir l'adresse du rpertoire o l'on veut rapatrier les
sourcessurnotremachine.Parexemple:
C:\DocumentsandSettings\kfardel\Bureau\mulcyber\
Ensuitelechampsdroulantquisuitindiquelaprofondeurducheckoutquel'onveutraliser.En
grosonindiquesionveutquelecheckoutsefassedanslerpertoireindiquerdanslechamps1
uniquementoudanslessousrpertoiresdurpertoireindiqudanslechamps,ouuniquementdans
lessousrpertoiresimmdiats.
Gnralementonmettralaprofondeurducheckoutenrcursifcomplet(fullyrecursive)carpourla
premireutilisationlemieuxestprobablementdercuprerlatotalitdessourcesd'unprojet(la
profondeurc'estcommentonvaparcourirlerpertoire,soitlerpertoireracineetc'esttoutsoitle
rpertoireracineetl'ensembledecessousrpertoireparexemple).Aprslibrevousd'utiliserla
profondeur que vous souhaitez. La dernire partie de la fentre indique la version que vous
souhaitezrcuprerduprojet.
Sivousactiverl'optionHEADrevisionvousrapatrierezladernireversionduprojet.
Si vous slectionnez Revision il vous faut indiquer quelle rvision vous souhaitez rapatrier.
Prenonsparexempleunprojetquel'onvientdecommencer.Lapremireversionduprojet
estsurleserveur(revision0).Bobrapatrieavecl'optionHEADrevision.Ilrcuprelessources
quiviennentjusted'tredposes.Ilralisequelquesmodificationsetlesenvoissurleserveur.Ce
quifaitqu'ilcrelaversion1(revision1).LLaarriveetveutelleaussitravaillersurleprojetmais
veutpartirduprojetdebaseavantqueBobnel'aimodifi.Alorselleslectionnel'optionRevision
etcritlenumrodelarevisionqu'ellesouhaitedanslechampsd'ct(iciceseralarevision0).
UncliquesurleboutonOKlanceralecheckoutaveclesoptionschoisies.
Durantlecheckoutvousverrezl'ensembledesoprationsralisesparTortoisependantle
checkout(unbonmoyendevoirsidesproblmesonteulieudurantlecheckout).Alafindu
checkoutquandvousavezfermlafentrevousvousapercevaitquelerpertoiresurlequelvous
venezderapatrierlessourcespossdeun.Pasdepaniquecelasignifiejustequetoutc'estbien
droul ! Ce petit symbole est rajout par Tortoise par dessus vos icnes Windows pour vous
indiquerl'tatdevotreversion.
AufuretmesuredevotreutilisationdeTortoisevousserezconfronterdiffrentsicnedansce
genre.Lalistesuivantevousindiquecequesignifielespluscourantsd'entreeux:
Ceticnevoussignifiequevotreversionlocalestinchangeetjour
etqu'iln'yaaucunproblmevisible.
Ceticnevoussignifiequevousavezmodifivotreversionsurvotre
machineetquevousn'avezpasralisdecommitversleserveur.
Doncsid'autresutilisateursrapatrientdessourcessurleurmachine
ilsn'aurontpasvosmodifications.
Ceticne vous indiquequelefichier(ourpertoire)agnr un
conflit.Nousverronsplusbascommentapparaissentlesconflitset
commentlesrsoudre.

8/24

TutorielTortoiseSVN
D'autresicnespeuventapparatrejevouslaisselesoindelesdcouvrirsurlesitedeTortoiseSVN:
http://tortoisesvn.net/docs/nightly/TortoiseSVN_fr/tsvndugwcstatus.html
Donclafindecettetapevoustesenpossessiondessourcesduprogrammeprtlesutiliser.

Misejour
Pourmettrejourvossourcesilvousfautrcuprerlessources,ayanttmodifissurleserveur
parunetierspersonne.Ainsisurvotremachinevousaurezlesderniresmodificationsapportespar
lesautresdveloppeurs.Lamisejoursefaittrssimplement:
cliquedroitsurvotrerpertoiredetravail
SVNupdate
Unefentres'ouvrevousindiquantlesfichiersquionttmisjoursurvotremachine:

Sidurantcettemisejourdeserreursonttaffichesdanslefentrejevouslaisselirelesdeux
partiessuivantespourvousexpliquercommentlesrsoudre.

Commit
Une fois que vous aurez apport les modifications que vous souhaitiez (ou que vous deviez)
apporteraucodesourceilfautquecesmodificationssoientvuesdetoutlemonde.Cetteopration
s'appellelecommit.Elleseraliseparl'oprationsuivante:
9/24

TutorielTortoiseSVN
cliquedroitsurlerpertoirequel'onsouhaitemettrejoursurleserveur.
Commit
Unepremirefentrevas'ouvrir:

10/24

TutorielTortoiseSVN

Dans lepremierchampsilvousfautindiquerunmessage(cen'estpasobligatoire mais


fortementrecommand)quivapermettreauxautresdveloppeursdesavoirpourquoivousavezfait
cecommit.Ledeuximechampsdelafentrevousindiquetouslesfichiersdurpertoirequivont
trecommit.Pourchaquefichiervousavezunecolonneaveclenomdufichieretunecase
cocher.Unecolonneindiquantl'extensiondufichieretunecolonneindiquantlestatutdufichier.
Normalementsilefichierapourstatutmodifiedalorsilestcoch,cequisignifiequ'ilseramis
jour sur le serveur.Silefichiern'apas tmodifientrevotrederniremise joursur votre
machineetlamisejourquevousralisezmaintenant,entoutelogique,iln'estpascoch.C'est
inutiledelemettrejoursurleserveur.
Avantdelancerlecommitpensertoutdemmevrifierquelechemind'accsauserveur(indiqu
enhautdelafentrelasuitedecommitto:)soitexact.

EncliquantsurOKunefentrevas'ouvrirvousindiquantlesfichiersquionttmisjoursurle
serveur:
11/24

TutorielTortoiseSVN

Danscetexempletouts'estbiendroul.Donclessourcessurleserveurcorrespondentaux
sourcesquevousavezsurvotremachine.
Maisdurantcecommitilpeutsecrerdesconflits.C'estlorsquelessourcesonttmodifis
parunautreutilisateurentrelemomentovousavezralisl'update(oucheckout)etlemomento
vousralisezcecommit.Encasdeconflitunmessagedansvotrefentre(ouvertelorsquevousavez
lanclecommit)vousl'indiquera.

Pour rsoudre ce conflit ralisez tout d'abord un update sur vos sources, puis faites un
nouveaucommit.L'updatesurvossourcesn'enlverapaslesmodificationsquevousavezapport
12/24

TutorielTortoiseSVN
cesdernires.Sipendantl'updateaucuneerreurn'estdtectealorsc'estqueleconflitestrsolut.
Parcontresidurantl'updatevousobtenezunmessagedelasorte:

AlorscelasignifiequeTortoisen'estpasenmesurederglerleconflitluimme.Cecivient
gnralementdufaitquelammeligneestmodifiedans lefichierquiposeproblmesurle
serveuretlefichierquiposeproblmesurvotremachine.Danscecasseulundesdveloppeurspeut
rsoudremanuellementleproblme.

Gestiond'unconflit
Tortoisevousoffreunutilitairepourcomparerdesfichiers.Encasdeconflitsilvavous
falloircomparerlefichiersurvotremachine,lefichiersurleserveuretlefichierquevousallez
envoyersurleserveur,oleconflitn'existeraplus.
Sivousn'avezpasretenuslenomdufichierquiposeproblme(c'estindiqudanslafentrelorsde
l'update)pasdepaniquenormalementl'icnede cefichier(dansvotreexplorateurWindows)est
misenvaleurpar...Siencoreunefoiscen'estpaslecastoujourspasdepaniquenormalement
unfichierquiposeproblmeestsuivipar3fichiersdummenom(unavecl'extension.mineun
avecl'extension.r+unnumroet.r+unnumro).
Unefoisquevousavezreprlefichierquiposeproblme.Ralisezl'oprationsuivante:
cliquedroitsurlefichierenquestion.
TortoiseSVN>Editconflicts

Lafentresuivantes'ouvre:
13/24

TutorielTortoiseSVN

Danslecoinenhautgauchedelafentrevousvoyezlefichiertelqu'ilestsurleserveur,en
hautdroitelefichiertelqu'ilestsurvotremachine,etenbaslefichiertelqu'ilvatresurvotre
machine. Les lignes surlignes en orange sont celles qui on t modifies par Tortoise
automatiquement. Les lignes non surlignes sont celle qui n'ont pas t modifies. Les lignes
surlignesenrougeposentproblme.Pourrsoudreleproblmeslectionnezleslignesenrouge,
danslapartiebassedelafentre,etralisezuncliquedroitdessus.Plusieursoptionss'offrentalors
vous.Chaqueoptionutiliselesnomsdesdeuxbloquesaudessus(lebloqueTheirsetlebloque
Mine).Avousdechoisirl'optionquivousplaitleplus.Unefoisquelefichierquiposeproblme
nepossdeplusdelignesurlignesenrougelesconflitssontrsolusenregistrez,puisfermezcette
fentre.Ensuitepourfinirlarsolutionfaitesl'oprationsuivante:
cliquedroitsurlefichierquiposaitproblme
TortoiseSVN>Resolved
Lafentresuivantes'ouvrealors:

14/24

TutorielTortoiseSVN

Ellevousindiquelefichierquivatrersolu.UnefoisquevousavezcliqusurOKune
nouvellefentres'ouvrevousindiquantqueleproblmesurlefichierabientrsolu.
Maintenantqu'iln'yaplusdeconflitvouspouvezrefairelecommit.Etnormalementtoutdevrait
biensedrouler.

15/24

TutorielTortoiseSVN

Utilisationavance
Gestiond'tiquettes
Tortoiseoffrelapossibilitdegrerdestiquettes.Lestiquettessontlesmorceaux de
programmequipeuventlivresl'utilisateurpourqu'ilpuisselesutiliser.C'estparexempleune
versionbtad'unprogramme.C'estuneversionquineseraplustouche.Pourquelestiquettes
soitbiengresilfautquesurleserveurlessourcessurlesquelleslesdveloppeurstravaillent
soientdansunrpertoire tronc etqu'ilyaitunautrerpertoirenommparexemple etiquette.La
racineduserveurseradonc:
tronc/<Sourcesendveloppement
etiquette/<zonedestockaged'uneversion
Lesdveloppeurstravaillentsurlerpertoiretronc/etquanduneversiondecessourcesest
livrableilscrentunetiquette,cequivacopiertouteslessourcesdanslerpertoireetiquette/.
Pourcrercettetiquetteilvousfautraliserl'oprationsuivante:
cliquedroitsurlerpertoiretroncsurvotremachine
TortoiseSVN>branch/tag...
Lafentresuivantes'ouvre:

DanslechampslasuitedeToURLilfautdonnerlerpertoireetiquette/duserveursuivi
16/24

TutorielTortoiseSVN
d'unrpertoireindiquantlenomdel'tiquette.Dansl'exemplecidessusonentre:
sen+ssh://stics@scm.mulcyber.toulouse.inra.fr/svnroot/sticsv69/etiquette/nom_de_version
Ensuiteonnousdemandecequ'ilfautprendrepourtiquette:

Soitladernireversiondutroncdanscecasilfautcocherlebouton HEADrevisioninthe
repository.
Soitunervisiondanscecasilfautcocher Specificrevisioninrepository etentrerdansle
champsd'ctlenumrodelarvision
Soitnotrerpertoiredetravail.DanscecasilfautslectionnerWorkingcopy.

Alasuiteilvousestdemandderemplirunmessagequidcriralaversion.Cechampsn'est
pas obligatoire mais fortement recommand pour que les utilisateurs du serveur sache ce que
reprsentecetteversion.
EnsuiteappuyersurOKetunefentres'ouvriravousindiquantquetouts'estbiendroul.

Gestiondesbranches
PourTortoiseunebrancheestquivalentunetiquette.Maispourraliserunprojetpropre
ilfautdiffrencierlesdeux.Unetiquetteestuneversionlivrableduprojetalorsqu'unebrancheest
creparundveloppeurpourqu'ilcodedesonctetquesesmodificationsnesoientpasintgres
autronc.Parexemplesileprojetn'estpasfinimaisqu'ilfonctionne.Onpeutcrerunetiquette
d'une version bta. Pour que les utilisateurs testent le programme. Pendant ce temps des
dveloppeursutilisentlessourcesdansletroncpourcorrigerlesbugs.Maisunautregroupede
dveloppeursouhaitentenparallleajouterunefonctionnalitauprogramme.Alorsilscrentune
brancheetajoutentleurfonctionnalitenutilisantcettebranche.Unefoislafonctionnalitterminil
fautquelesdveloppeurspuissentramenerleurbranchesurletroncolesautresdveloppeursont
corrigdesbugs.Tortoisepermetdegrertoutcecheminement.
Pourcrerunebrancheilfautfairecommepourcrerunetiquette:
cliquedroitsurletroncsurvotremachinelocale.
TortoiseSVN>Branch/tag...
Danslafentrequis'ouvrecettefoisaulieudeslectionnerlerpertoireetiquette/onentre
lecheminpourlerpertoirebranches/suivitdunomdelabranche.Parexemple:
svn+ssh://stics@scm.mulcyber.toulouse.inra.fr/svnroot/sticsv69/branche/nom_de_la_branche
Celaimpliquequelerpertoireracinesurleserveursoitdelaforme:
tronc/
etiquette/
branche/
17/24

TutorielTortoiseSVN
Maintenantquelabrancheestcreilvafalloirdplacernotreespacedetravail(l'espacede
travailestlerpertoireonousralisonslescommitetpartirduquelnousmettonsjournos
sources).Eneffetnousn'allonsplustravaillersurletroncmaissurnotrebranche.
Pourralisercedplacement(ouswitch):
cliquedroitsurnotrerpertoiredetravail(surlamachinelocalbiensur)
TortoiseSVN>Switch...
Vousobtenezalorslafentresuivante:

Danslepremierchampsilfautchangerlerpertoireetmettrelerpertoiredelabranchesurlaquelle
onvatravailler:
svn+ssh://stics@scm.mulcyber.toulouse.inra.fr/svnroot/sticsv69/branche/nom_de_la_branche
Ensuite on peut choisir entre se placer la rvision la plus rcente de la branche
(slectionner HEADrevision)ouseplacerunervisionantrieureenentrantlenumrodela
rvision.
EncliquantsurOKunenouvellefentres'ouvrevousindiquantquetoutc'estbiendroul.
Apartirdemaintenanttouslesupdateettouslescommitquevousallezraliserseferontsurcette
brancheetnetoucheronsplusautronc.
Parlasuitesivousvoulezrecollercettebrancheautroncfaites:
cliquedroitsurvotrerpertoiredetravail
SVNcommit
Leserveurauraainsiladernireversiondessourcesprsententsurvotremachine.
18/24

TutorielTortoiseSVN
Il vous faut raliser un nouveau switch vers le tronc. Vous crer un rpertoire tronc sur votre
machinelocalepuis:
cliquedroitsurcedernierrpertoire.
SVNupdate
Maintenantvousavezlessourcesdevotrebranchemisejoursurleserveuretunrpertoire
troncpossdantlessourcesdutroncduserveur.
cliquedroitsurlerpertoiretronc
TortoiseSVN>Merge...
Lafentresuivantes'ouvre:

Dans cette fentre slectionnez Reintegrate a branch (pour rintgrer une branche au
tronc,pourlesautresoptionsallezsurlesite:
http://tortoisesvn.net/docs/nightly/TortoiseSVN_fr/tsvndugmerge.html)

19/24

TutorielTortoiseSVN
AppuyezsurNext.Lafentresuivanteapparat:

20/24

TutorielTortoiseSVN

21/24

TutorielTortoiseSVN

Danslepremierchampsindiquezlabranchequevoussouhaitezfusionnerautronc.Parexemple:
svn+ssh://stics@scm.mulcyber.toulouse.inra.fr/svnroot/sticsv69/branche/nom_de_la_branche

AppuyersurNext.Lafentresuivanteapparat:

22/24

TutorielTortoiseSVN

Sur cette fentre vous n'avez pas vraiment besoin demodifier les options, seulement le
champsMergedepthovouspouvezchoisirFullyrecursive.
Unefentres'ouvrevousindiquantl'avancementdelafusion.Siilyaunconflit(voirpartie
Gestiond'unconflit)lafentresuivantevas'ouvrir:

Soitvouschoisissezdegardercequivientdutronc:Uselocal
Soitvouschoisissezdegardercequivientdelabranche:Userepository
23/24

TutorielTortoiseSVN
Soitvousditezlesconflits:Editconflict(etreportezvouslapartieGestiondesconflitspour
savoirquoifairedevantlanouvellefentrequis'ouvre)etpensezensuitecliquersurResolved.
Soitvouschoisissezdersoudreplustard:Resolvelater
Ensuiteletroncdoitpossderlesmodificationsquiavaienttapportessurlabrancheenplusdes
modificationsquiavaienttapporteslabranche.

Recommandations

Garderunseultroncquiseralaversionencours(lesversionsontenfaitlesrvisions)

Ilfautfaireunetiquettequanduneversionestfige

Fairedesbranchesquandvoustesplusieursdveloppeurs

Ilfauttretrsrigoureuxsurlescommentairesetlesmessageslorsdescommitoudes
checkoutpournepasseperdredanslesversions

24/24

Vous aimerez peut-être aussi