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'[Link]
pointsneserontpasabordsoupasapprofondismaislasuitedecetutorielvousdevriezpouvoir
utiliserTortoiseSVNpourdvelopperunprojetencollaborationavecd'[Link]
lespartiesdecetutorielsontimportantessivousnesavezpasraliserl'uned'entreellen'esprezpas
voir l'efficacit de TortoiseSVN dans un gros projet. Ce tutoriel n'est pas long et reste
volontairementunrsumdescommandesutilespourl'utilisationqu'onenferadanslecadredu
[Link]:
[Link]
[Link]
certainepartielatraductionanglaisfranaisn'[Link]
paragraphesenanglais!!!
Pourtoutesremarquessurcepetittutoriel:
[Link]@[Link]
3/24
TutorielTortoiseSVN
PrsentationdeTortoiseSVN
TortoiseSVN est un client opensource gratuit pour le systme de contrle de version
Subversion.C'[Link]
[Link]
fichiersordinaire,saufqu'[Link]
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)[Link]
que bob et la sont deux dveloppeurs d'un logiciel. Ces deux personnes vont travailler
[Link]
fautquelesdeuxpuissentutiliserlessourcesduprojetenmmetemps,lesmodifierenmmetemps
etsurtoutquelesmodificationsdel'unsoientapportesauxsourcesdel'[Link]
[Link].
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'[Link]
pouvezconstaterqu'enralisantunclicdroitsurunrpertoire(dansvotreexplorateurWindows)un
nouveaumenuestapparu:
Sicemenun'apparaitpasalorsl'installationc'[Link]
allersurleFAQdusitesuivant:
[Link]
5/24
TutorielTortoiseSVN
ConfigurationdeTortoiseSVN.
[Link]
devezavoirenvotrepossessionl'adressedeceserveur.
Cetteadressepeutsetrouversousplusieursformesrsumesdansletableausuivant:
file://
Accsdirectaurfrentielsurdisquelocalourseau.
http://
AccsvialeprotocoleWebDAVunserveurApacheavecSubversion.
https://
Mmechoseque[Link]
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
[Link]'unedesformeexposesdansle
tableaudelapartieprcdentesuivitd'[Link]:
svn+ssh://nom_du_developpeur@[Link]/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
[Link]:
C:\DocumentsandSettings\kfardel\Bureau\mulcyber\
Ensuitelechampsdroulantquisuitindiquelaprofondeurducheckoutquel'[Link]
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'[Link]
estsurleserveur(revision0).Bobrapatrieavecl'[Link]
quiviennentjusted'[Link]
quifaitqu'ilcrelaversion1(revision1).LLaarriveetveutelleaussitravaillersurleprojetmais
veutpartirduprojetdebaseavantqueBobnel'[Link]'optionRevision
etcritlenumrodelarevisionqu'ellesouhaitedanslechampsd'ct(iciceseralarevision0).
UncliquesurleboutonOKlanceralecheckoutaveclesoptionschoisies.
Durantlecheckoutvousverrezl'ensembledesoprationsralisesparTortoisependantle
checkout(unbonmoyendevoirsidesproblmesonteulieudurantlecheckout).Alafindu
checkoutquandvousavezfermlafentrevousvousapercevaitquelerpertoiresurlequelvous
[Link]'estbien
droul ! Ce petit symbole est rajout par Tortoise par dessus vos icnes Windows pour vous
indiquerl'tatdevotreversion.
AufuretmesuredevotreutilisationdeTortoisevousserezconfronterdiffrentsicnedansce
[Link]'entreeux:
Ceticnevoussignifiequevotreversionlocalestinchangeetjour
etqu'iln'yaaucunproblmevisible.
Ceticnevoussignifiequevousavezmodifivotreversionsurvotre
machineetquevousn'avezpasralisdecommitversleserveur.
Doncsid'autresutilisateursrapatrientdessourcessurleurmachine
ilsn'aurontpasvosmodifications.
Ceticne vous indiquequelefichier(ourpertoire)agnr un
[Link]
commentlesrsoudre.
8/24
TutorielTortoiseSVN
D'autresicnespeuventapparatrejevouslaisselesoindelesdcouvrirsurlesitedeTortoiseSVN:
[Link]
Donclafindecettetapevoustesenpossessiondessourcesduprogrammeprtlesutiliser.
Misejour
Pourmettrejourvossourcesilvousfautrcuprerlessources,ayanttmodifissurleserveur
[Link]
[Link]:
cliquedroitsurvotrerpertoiredetravail
SVNupdate
Unefentres'ouvrevousindiquantlesfichiersquionttmisjoursurvotremachine:
Sidurantcettemisejourdeserreursonttaffichesdanslefentrejevouslaisselirelesdeux
partiessuivantespourvousexpliquercommentlesrsoudre.
Commit
Une fois que vous aurez apport les modifications que vous souhaitiez (ou que vous deviez)
[Link]
s'[Link]'oprationsuivante:
9/24
TutorielTortoiseSVN
cliquedroitsurlerpertoirequel'onsouhaitemettrejoursurleserveur.
Commit
Unepremirefentrevas'ouvrir:
10/24
TutorielTortoiseSVN
Dans lepremierchampsilvousfautindiquerunmessage(cen'estpasobligatoire mais
fortementrecommand)quivapermettreauxautresdveloppeursdesavoirpourquoivousavezfait
[Link]
[Link]
[Link]'extensiondufichieretunecolonneindiquantlestatutdufichier.
Normalementsilefichierapourstatutmodifiedalorsilestcoch,cequisignifiequ'ilseramis
jour sur le [Link]'apas tmodifientrevotrederniremise joursur votre
machineetlamisejourquevousralisezmaintenant,entoutelogique,iln'estpascoch.C'est
inutiledelemettrejoursurleserveur.
Avantdelancerlecommitpensertoutdemmevrifierquelechemind'accsauserveur(indiqu
enhautdelafentrelasuitedecommitto:)soitexact.
EncliquantsurOKunefentrevas'ouvrirvousindiquantlesfichiersquionttmisjoursurle
serveur:
11/24
TutorielTortoiseSVN
Danscetexempletouts'[Link]
sourcesquevousavezsurvotremachine.
Maisdurantcecommitilpeutsecrerdesconflits.C'estlorsquelessourcesonttmodifis
parunautreutilisateurentrelemomentovousavezralisl'update(oucheckout)etlemomento
[Link](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
[Link]'updateaucuneerreurn'estdtectealorsc'estqueleconflitestrsolut.
Parcontresidurantl'updatevousobtenezunmessagedelasorte:
AlorscelasignifiequeTortoisen'[Link]
gnralementdufaitquelammeligneestmodifiedans lefichierquiposeproblmesurle
[Link]
rsoudremanuellementleproblme.
Gestiond'unconflit
[Link]
falloircomparerlefichiersurvotremachine,lefichiersurleserveuretlefichierquevousallez
envoyersurleserveur,oleconflitn'existeraplus.
Sivousn'avezpasretenuslenomdufichierquiposeproblme(c'estindiqudanslafentrelorsde
l'update)pasdepaniquenormalementl'icnede cefichier(dansvotreexplorateurWindows)est
misenvaleurpar...Siencoreunefoiscen'estpaslecastoujourspasdepaniquenormalement
unfichierquiposeproblmeestsuivipar3fichiersdummenom(unavecl'[Link]
avecl'extension.r+unnumroet.r+unnumro).
[Link]'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
[Link],
danslapartiebassedelafentre,[Link]'offrentalors
[Link](lebloqueTheirsetlebloque
Mine).Avousdechoisirl'[Link]
nepossdeplusdelignesurlignesenrougelesconflitssontrsolusenregistrez,puisfermezcette
[Link]'oprationsuivante:
cliquedroitsurlefichierquiposaitproblme
TortoiseSVN>Resolved
Lafentresuivantes'ouvrealors:
14/24
TutorielTortoiseSVN
[Link]
nouvellefentres'ouvrevousindiquantqueleproblmesurlefichierabientrsolu.
Maintenantqu'iln'[Link]
biensedrouler.
15/24
TutorielTortoiseSVN
Utilisationavance
Gestiond'tiquettes
[Link] de
programmequipeuventlivresl'utilisateurpourqu'ilpuisselesutiliser.C'estparexempleune
versionbtad'unprogramme.C'[Link]
soitbiengresilfautquesurleserveurlessourcessurlesquelleslesdveloppeurstravaillent
soientdansunrpertoire tronc etqu'ilyaitunautrerpertoirenommparexemple [Link]
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'[Link]'exemplecidessusonentre:
sen+ssh://stics@[Link]/svnroot/sticsv69/etiquette/nom_de_version
Ensuiteonnousdemandecequ'ilfautprendrepourtiquette:
Soitladernireversiondutroncdanscecasilfautcocherlebouton HEADrevisioninthe
repository.
Soitunervisiondanscecasilfautcocher Specificrevisioninrepository etentrerdansle
champsd'ctlenumrodelarvision
[Link].
[Link]'est
pas obligatoire mais fortement recommand pour que les utilisateurs du serveur sache ce que
reprsentecetteversion.
EnsuiteappuyersurOKetunefentres'ouvriravousindiquantquetouts'estbiendroul.
Gestiondesbranches
[Link]
[Link]'unebrancheest
creparundveloppeurpourqu'ilcodedesonctetquesesmodificationsnesoientpasintgres
[Link]'estpasfinimaisqu'[Link]
d'une version bta. Pour que les utilisateurs testent le programme. Pendant ce temps des
[Link]
[Link]
[Link]
fautquelesdveloppeurspuissentramenerleurbranchesurletroncolesautresdveloppeursont
[Link].
Pourcrerunebrancheilfautfairecommepourcrerunetiquette:
cliquedroitsurletroncsurvotremachinelocale.
TortoiseSVN>Branch/tag...
Danslafentrequis'ouvrecettefoisaulieudeslectionnerlerpertoireetiquette/onentre
lecheminpourlerpertoirebranches/[Link]:
svn+ssh://stics@[Link]/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@[Link]/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:
[Link]
19/24
TutorielTortoiseSVN
[Link]:
20/24
TutorielTortoiseSVN
21/24
TutorielTortoiseSVN
[Link]:
svn+ssh://stics@[Link]/svnroot/sticsv69/branche/nom_de_la_branche
[Link]:
22/24
TutorielTortoiseSVN
Sur cette fentre vous n'avez pas vraiment besoin demodifier les options, seulement le
champsMergedepthovouspouvezchoisirFullyrecursive.
Unefentres'ouvrevousindiquantl'[Link](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