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.
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.
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
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