Mémo : Utilisation de SVN sous Windows

Transcription

Mémo : Utilisation de SVN sous Windows
ESIEE Engineering
Mémo SVN - Windows
B. Perret – L. Buzer
Mémo : Utilisation de SVN sous Windows
Sommaire
Mémo : 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) Intégration dans l'explorateur de fichiers ................................................................................ 3
2.1) Récupérer un projet depuis un dépôt ...................................................................................... 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 précédente ........................................................................................... 5
1) Logiciels : installation et configuration
1.1) Client/serveur Subversion pour Windows : TortoiseSVN
TortoiseSVN fournit un client/serveur SVN, une interface graphique intégrée à Windows
Explorer (dans le menu contextuel) et un ensemble d'outil (fusion de fichiers, comparaison de
versions, connexion sécurisée, ...).
Adresse de téléchargement : 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
1
ESIEE Engineering
Mémo SVN - Windows
B. Perret – L. Buzer
configuration de SVN peut être partagée ! Comme les préférences locales sont propres à chaque
machine à l'ESIEE, vous devrez les configurez sur chaque ordinateur que vous utilisez !
Si vous êtes derrière 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 nécessaire à l'ESIEE (salle 3105) car elle est partagée : Propriété par défaut
pour les fichiers gérés 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 Décommenter la ligne "enable-auto-props = yes" (supprimer le # en début
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 intégrée à Visual Studio pour SVN.
Adresse de téléchargement : http://ankhsvn.open.collab.net/downloads
Installation : suivre les instructions
2
ESIEE Engineering
Mémo SVN - Windows
B. Perret – L. Buzer
Configuration :

Lancer Visual Studio (pas trop loin) puis, menu Tools -> Options -> Source Control et
sélectionner AnkhSVN.
2) Utilisation de SVN
Documentation courte de Tortoise (HTML) :
http://tortoisesvn.net/docs/release/TortoiseSVN_fr/tsvn-dug.html
Documentation complète de Tortoise en français (pdf):
http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.7.1-fr.pdf?download
2.1) Intégration dans l'explorateur de fichiers
Tortoise modifie les icones des fichiers gérés par le SVN de manière à rapidement voir leur
état (à jour, modifié, en attente d'ajout, en conflit, ...):
2.1) Récupérer un projet depuis un dépôt
Clic droit sur le dossier où doit être téléchargé le projet, cliquez sur "SVN checkout".
Renseignez l'adresse du référentiel, vérifiez 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 dépôt (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 ajoutés, modifiés, supprimés et en conflits. Un fichier est en conflit s'il a été
édité par plusieurs personnes en même temps et que SVN est incapable de fusionner les différentes
3
ESIEE Engineering
Mémo SVN - Windows
B. Perret – L. Buzer
versions simplement (par exemple si une même ligne du fichier a été modifiée de manière
différentes par plusieurs utilisateurs). C'est alors à vous de gérer 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 fenêtre permettant de saisir un texte qui décrit le contenu de votre mise-à-jour. C'est une
bonne pratique de le renseigner même avec une description minimaliste, par exemple "debug IHM
sélection d'objets"), cela permet de retrouver facilement une modification particulière et de revenir
dessus si nécessaire.
Dans cette même fenêtre, vous pouvez sélectionner les fichiers qui doivent être ajoutés 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 détecte un conflit, le commit sera annulé ! Vous devrez d'abord faire un update et
résoudre 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 générer 4 fichiers
différents pour vous aider:

un fichier "foo.bar" : c'est le fichier fusionné. A chaque portion du fichier en conflit, SVN
insère un texte de la forme:
<<<<<<< foo.bar
votre version
=======
la version dans le dépôt
>>>>>>> revision
Ceci vous permet de facilement comparer les modifications que vous avez apportées par
rapport à celle qui ont été apportées sur le dépôt.



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 révision de BASE avant que vous
mettiez à jour votre copie de travail. C'est-à-dire le fichier que vous avez extrait avant de
faire votre dernière é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 révision de tête du référentiel.
Les différentes solutions pour résoudre le conflit sont :
4
ESIEE Engineering


Mémo 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 accès à un outil qui vous montrera simultanément les 2 versions du
fichier (la votre et celle du dépôt) en surlignant les conflits en rouge. Vous pourrez alors
choisir pour chaque conflit, quelle version doit être utilisée.
Edition manuelle du fichier.
Une fois le conflit résolu, il faut faire un clic droit sur le fichier, menu TortoiseSVN->Mark as
Resolved.
2.5) Les verrous
Par défaut, tous les fichiers peuvent être édités par tout le monde en même temps. Ce
comportement est efficace pour les fichiers textes contenant du code écrit par l'utilisateur mais
fortement néfaste pour les binaires ou les fichiers générés automatiquement par un programme
comme Visual Studio (fichiers de configuration, code auto-généré 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 possédez 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 définir automatiquement les
propriétés de verrouillage des fichiers en fonctions de leur nom, elle est donc très importante pour
se prémunir de difficultés insolubles.
Le verrou sur un fichier est automatiquement libéré 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 révisions avec leur description (d'où l'intérêt de saisir un
message lors d'un commit)
Blame : permet de savoir pour chaque ligne d'un fichier : le numéro de la révision où elle a
été modifiée en dernier et son auteur.
Diff: compare la version actuelle avec les révisions précédentes.
2.6) Revenir à une version précédente
Personne n'est jamais à l'abri d'une erreur et SVN permet de facilement les réparer en
revenant en arrière. Pour cela il suffit de faire un clic droit sur le fichier/dossier incriminé, puis menu
Tortoise SVN-> Revert et sélectionner à 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 / déplacer / renommage
Si vous utilisez les commandes copier/couper/coller/renommer de windows, vous allez
5
ESIEE Engineering
Mémo SVN - Windows
B. Perret – L. Buzer
provoquer un UPLOAD complet du répertoire/fichier en question. Pour éviter cela, il faut utiliser
l’équivalent sous TortoiseSVN. Utilisez un click droit souris + glisser + relâcher pour faire apparaître
le menu contextuel suivant :
Pour effectuer un changement de nom, il faudra effectuer le sélectionner/glisser/relâcher dans le
même répertoire.
6

Documents pareils