Vous êtes sur la page 1sur 6

ESIEE Engineering

Mmo SVN - Windows

B. Perret L. Buzer

Mmo : Utilisation de SVN sous Windows


Sommaire
Mmo : Utilisation de SVN sous Windows .............................................................................................. 1
1) Logiciels : installation et configuration ........................................................................................... 1
1.1) Client/serveur Subversion pour Windows : TortoiseSVN ........................................................ 1
1.2) Configuration standard ............................................................................................................ 1
1.3) Configuration pour Visual Studio ............................................................................................. 2
1.4) Client SVN pour Visual Studio : AnkhSVN................................................................................. 2
2) Utilisation de SVN............................................................................................................................ 3
2.1) Intgration dans l'explorateur de fichiers ................................................................................ 3
2.1) Rcuprer un projet depuis un dpt ...................................................................................... 3
2.2) Mettre jour votre copie de travail ......................................................................................... 3
2.3) Envoyer vos modifications sur le serveur ................................................................................ 4
2.4) Gestion des conflits .................................................................................................................. 4
2.5) Les verrous ............................................................................................................................... 5
2.5) Suivi de modifications .............................................................................................................. 5
2.6) Revenir une version prcdente ........................................................................................... 5

1) Logiciels : installation et configuration


1.1) Client/serveur Subversion pour Windows : TortoiseSVN

TortoiseSVN fournit un client/serveur SVN, une interface graphique intgre Windows


Explorer (dans le menu contextuel) et un ensemble d'outil (fusion de fichiers, comparaison de
versions, connexion scurise, ...).
Adresse de tlchargement : http://tortoisesvn.net/downloads.html
Installation : demandez installer le client pour le mode console, a peut servir.
1.2) Configuration standard

La configuration de Tortoise est propre chaque utilisateur de la machine mais la

ESIEE Engineering

Mmo SVN - Windows

B. Perret L. Buzer

configuration de SVN peut tre partage ! Comme les prfrences locales sont propres chaque
machine l'ESIEE, vous devrez les configurez sur chaque ordinateur que vous utilisez !
Si vous tes derrire un proxy (comme l'ESIEE) : clic droit sur le bureau, un dossier ou un
fichier dans l'explorateur, menu TortoiseSVN->Settings, section Network, cocher "Enable Proxy
Server" et configurer le proxy. Pour l'ESIEE, mettre "cache.esiee.fr" pour "Server adress" et "3128"
dans "port".
1.3) Configuration pour Visual Studio
Cette tape n'est pas ncessaire l'ESIEE (salle 3105) car elle est partage : Proprit par dfaut
pour les fichiers grs par SVN : clic droit sur le bureau, un dossier ou un fichier dans l'explorateur,
menu TortoiseSVN->Settings, section General, cliquer sur le bouton Edit en face du label "Subversion
Configuration File"
o Dcommenter la ligne "enable-auto-props = yes" (supprimer le # en dbut
de ligne)
o Remplacez la section [auto-props] par :
[auto-props]
# C# generated files
*.csproj = svn:needs-lock=*
*.resx = svn:needs-lock=*
*.sln = svn:needs-lock=*
*.suo = svn:needs-lock=*
*.Designer.cs = svn:needs-lock=*
AssemblyInfo.cs = svn:needs-lock=*
# images
*.bmp = svn:mime-type=image/bmp;svn:needs-lock=*
*.gif = svn:mime-type=image/gif;svn:needs-lock=*
*.ico = svn:mime-type=image/x-icon;svn:needs-lock=*
*.jpeg = svn:mime-type=image/jpeg;svn:needs-lock=*
*.jpg = svn:mime-type=image/jpeg;svn:needs-lock=*
*.png = svn:mime-type=image/png;svn:needs-lock=*
*.tif = svn:mime-type=image/tiff;svn:needs-lock=*
*.tiff = svn:mime-type=image/tiff;svn:needs-lock=*
# documents
*.doc = svn:mime-type=application/msword;svn:needs-lock=*
*.docx = svn:mime-type=application/vnd.openxmlformats-officedocument.wordprocessingml.document;svn:needs-lock=*
*.ppt = svn:mime-type=application/vnd.ms-powerpoint;svn:needs-lock=*
*.pptx = svn:mime-type=application/vnd.openxmlformats-officedocument.presentationml.presentation;svn:needs-lock=*
*.xls = svn:mime-type=application/vnd.ms-excel;svn:needs-lock=*
*.xlsx = svn:mime-type=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;svn:needs-lock=*
*.jar = svn:mime-type=application/octet-stream;svn:needs-lock=*
*.odc = svn:mime-type=application/vnd.oasis.opendocument.chart;svn:needs-lock=*
*.odf = svn:mime-type=application/vnd.oasis.opendocument.formula;svn:needs-lock=*
*.odg = svn:mime-type=application/vnd.oasis.opendocument.graphics;svn:needs-lock=*
*.odi = svn:mime-type=application/vnd.oasis.opendocument.image;svn:needs-lock=*
*.odp = svn:mime-type=application/vnd.oasis.opendocument.presentation;svn:needs-lock=*
*.ods = svn:mime-type=application/vnd.oasis.opendocument.spreadsheet;svn:needs-lock=*
*.odt = svn:mime-type=application/vnd.oasis.opendocument.text;svn:needs-lock=*
*.pdf = svn:mime-type=application/pdf;svn:needs-lock=*
*.ppt = svn:mime-type=application/vnd.ms-powerpoint;svn:needs-lock=*
*.ser = svn:mime-type=application/octet-stream;svn:needs-lock=*
*.swf = svn:mime-type=application/x-shockwave-flash;svn:needs-lock=*
*.vsd = svn:mime-type=application/x-visio;svn:needs-lock=*
*.xls = svn:mime-type=application/vnd.ms-excel;svn:needs-lock=*
*.zip = svn:mime-type=application/zip;svn:needs-lock=*

1.4) Client SVN pour Visual Studio : AnkhSVN

AnkhSVN est une interface intgre Visual Studio pour SVN.


Adresse de tlchargement : http://ankhsvn.open.collab.net/downloads
Installation : suivre les instructions

ESIEE Engineering

Mmo SVN - Windows

B. Perret L. Buzer

Configuration :

Lancer Visual Studio (pas trop loin) puis, menu Tools -> Options -> Source Control et
slectionner AnkhSVN.

2) Utilisation de SVN
Documentation courte de Tortoise (HTML) :
http://tortoisesvn.net/docs/release/TortoiseSVN_fr/tsvn-dug.html
Documentation complte de Tortoise en franais (pdf):
http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.7.1-fr.pdf?download

2.1) Intgration dans l'explorateur de fichiers

Tortoise modifie les icones des fichiers grs par le SVN de manire rapidement voir leur
tat ( jour, modifi, en attente d'ajout, en conflit, ...):

2.1) Rcuprer un projet depuis un dpt

Clic droit sur le dossier o doit tre tlcharg le projet, cliquez sur "SVN checkout".
Renseignez l'adresse du rfrentiel, vrifiez que le dossier destination est correct, cliquez sur "OK" et
renseignez vos identifiants de connexion. La plupart des erreurs ce niveau sont dues a une
mauvaise transcription de l'adresse du dpt (sensible la casse).
2.2) Mettre jour votre copie de travail

Clic droit sur le dossier contenant la copie de travail, cliquez sur "SVN Update". Tortoise vous
donne la liste des fichiers ajouts, modifis, supprims et en conflits. Un fichier est en conflit s'il a t
dit par plusieurs personnes en mme temps et que SVN est incapable de fusionner les diffrentes

ESIEE Engineering

Mmo SVN - Windows

B. Perret L. Buzer

versions simplement (par exemple si une mme ligne du fichier a t modifie de manire
diffrentes par plusieurs utilisateurs). C'est alors vous de grer le conflit en choisissant les lignes
conserver.

2.3) Envoyer vos modifications sur le serveur

Clic droit sur le dossier contenant la copie de travail, cliquez sur "SVN Commit". Tortoise
ouvre une fentre permettant de saisir un texte qui dcrit le contenu de votre mise--jour. C'est une
bonne pratique de le renseigner mme avec une description minimaliste, par exemple "debug IHM
slection d'objets"), cela permet de retrouver facilement une modification particulire et de revenir
dessus si ncessaire.
Dans cette mme fentre, vous pouvez slectionner les fichiers qui doivent tre ajouts aux
projets. Le simple ajout d'un fichier dans le dossier du projet ne suffit pas l'ajouter au SVN, il faut
le demander explicitement.
Si SVN dtecte un conflit, le commit sera annul ! Vous devrez d'abord faire un update et
rsoudre le conflit avant de pouvoir enregistrer vos modifications !
2.4) Gestion des conflits

En cas de conflits de versions sur un fichier (par exemple "foo.bar"), SVN va gnrer 4 fichiers
diffrents pour vous aider:

un fichier "foo.bar" : c'est le fichier fusionn. A chaque portion du fichier en conflit, SVN
insre un texte de la forme:
<<<<<<< foo.bar
votre version
=======
la version dans le dpt
>>>>>>> revision

Ceci vous permet de facilement comparer les modifications que vous avez apportes par
rapport celle qui ont t apportes sur le dpt.

un fichier "foo.bar.mine" : c'est votre fichier comme il a exist dans votre copie de travail
avant que vous mettiez jour votre copie de travail.
un fichier "foo.bar.rOLDREV" : C'est le fichier qui tait la rvision de BASE avant que vous
mettiez jour votre copie de travail. C'est--dire le fichier que vous avez extrait avant de
faire votre dernire dition.
un fichier "foo.bar.rNEWREV" : C'est le fichier que votre client de Subversion venait de
recevoir du serveur quand vous avez mis jour votre copie de travail. Ce fichier correspond
la rvision de tte du rfrentiel.

Les diffrentes solutions pour rsoudre le conflit sont :

ESIEE Engineering

Mmo SVN - Windows

B. Perret L. Buzer

Utilisation de l'outil de fusion: clic droit sur le fichier en conflit, menu TortoiseSVN->Edit
Conflict . Vous avez alors accs un outil qui vous montrera simultanment les 2 versions du
fichier (la votre et celle du dpt) en surlignant les conflits en rouge. Vous pourrez alors
choisir pour chaque conflit, quelle version doit tre utilise.
Edition manuelle du fichier.

Une fois le conflit rsolu, il faut faire un clic droit sur le fichier, menu TortoiseSVN->Mark as
Resolved.
2.5) Les verrous

Par dfaut, tous les fichiers peuvent tre dits par tout le monde en mme temps. Ce
comportement est efficace pour les fichiers textes contenant du code crit par l'utilisateur mais
fortement nfaste pour les binaires ou les fichiers gnrs automatiquement par un programme
comme Visual Studio (fichiers de configuration, code auto-gnr pour les IHM). Dans ce cas, il faut
verrouiller le fichier avant de l'diter, toute dition du fichier par un autre utilisateur sera alors
impossible tant que vous possdez le verrou et que la version n'est pas jour. La modification de la
section [auto-props] du fichier de configuration SVN a pour but de dfinir automatiquement les
proprits de verrouillage des fichiers en fonctions de leur nom, elle est donc trs importante pour
se prmunir de difficults insolubles.
Le verrou sur un fichier est automatiquement libr lors de l'envoie de vos modifications
au serveur (commit).
2.5) Suivi de modifications

Tortoise propose un ensemble d'outils pour suivre les modifications d'une ressource:

Show log: montre l'ensemble des rvisions avec leur description (d'o l'intrt de saisir un
message lors d'un commit)
Blame : permet de savoir pour chaque ligne d'un fichier : le numro de la rvision o elle a
t modifie en dernier et son auteur.
Diff: compare la version actuelle avec les rvisions prcdentes.

2.6) Revenir une version prcdente

Personne n'est jamais l'abri d'une erreur et SVN permet de facilement les rparer en
revenant en arrire. Pour cela il suffit de faire un clic droit sur le fichier/dossier incrimin, puis menu
Tortoise SVN-> Revert et slectionner quelle version vous souhaitez revenir. Les outils "Show log"
et "Diff" vous aideront trouver la version laquelle vous devez revenir.
2.7) Effectuer des copier / dplacer / renommage

Si vous utilisez les commandes copier/couper/coller/renommer de windows, vous allez

ESIEE Engineering

Mmo SVN - Windows

B. Perret L. Buzer

provoquer un UPLOAD complet du rpertoire/fichier en question. Pour viter cela, il faut utiliser
lquivalent sous TortoiseSVN. Utilisez un click droit souris + glisser + relcher pour faire apparatre
le menu contextuel suivant :

Pour effectuer un changement de nom, il faudra effectuer le slectionner/glisser/relcher dans le


mme rpertoire.