01/12/2008

Installation du serveur Subversion

1. Présentation
2. Définir la variable d'environnement
3. Installation du serveur
4. Création du référentiel
5. Définir les droits d'accès
6. Installation du service
7. Création des dépôts
8. Tester les dépôts

 
1. Présentation


Subversion est un gestionnaire de version, c'est-à-dire qu’il permet tout au long du cycle de vie de votre logiciel d’assurer l’historisation des modifications apportées par les développeurs sur un projet. Subversion permet à plusieurs développeurs de travailler simultanément, de gérer les versions spécifiques sans interférer avec les développements courant, de labéliser les versions livrées aux clients, de mettre à jours les modifications apportées par les développeurs, de restaurer l’état des sources à n'importe quel instant.



2. Définir la variable d'environnement


L'installation du serveur subversion nécessite de définir une variable d'environnement système nommée "svn_editor" permettant d'indiquer quel éditeur de texte utiliser lors de la création des dépôts, dans cet exemple nous définirons "notepad.exe".

Définir la variable : SVN_EDITOR
1. Clic droit sur l'icône du "poste de travail" de Windows
2. Sélectionner "Propriétés" puis l'onglet "Avancé"
3. Cliquez sur le bouton "Variables d'environnement"
4. Dans la zone "Variables système"
5. Appuyer sur le bouton "Nouveau"
6. Saisir la variable, puis OK


3. Installation du serveur

Télécharger le serveur Subversion Setup-Subversion-1.5.3.msi puis lancez l'installation ...



4. Création du référentiel


Malheureusement l'installation de subversion ne s'arrête pas avec l'installation du serveur , vous devez encore réaliser d'autres opérations tels que la création du référentiel qui construira le système de fichier nécessaire à Subversion : base de donnée, fichiers de paramétrage, etc ...

Création du référentiel "svn_serveur"
1. cd c:\"Program Files"\Subversion\bin\
2. svnadmin create --fs-type=fsfs "c:\svn_serveur"


Vérification du système de fichier


5. Définir les droits d'accès

Afin que les utilisateurs puissent s'identifier par un "login / password"

Editer "svnserve.conf"
1. Ouvrir "C:\svn_serveur\conf\svnserve.conf" avec "notepad.exe"
2. Supprimer le # devant les paramètres :

anon-access = read

auth-access = write

password-db = passwd



Editer "passwd"
1. Ouvrir "C:\svn_serveur\conf\passwd" avec "notepad.exe"
2. Ajouter un utilisateur
ici : admin = password



6. Installation du service


Télécharger le service Subversion SVNService.zip cela vous permettra d'exécuter Subversion comme un service Windows (plus pratique que le mode Standalone et plus logique pour un serveur).

Installation du service
1. Décompresser ce fichier dans "C:\Program Files\Subversion\bin".
2. cd c:\"Program Files"\Subversion\bin\
3. SVNService.exe -install --daemon --root "c:\svn_serveur"
4. sc config SVNService start= auto
5. NET START SVNService

7. Création des dépôts

Les dépôts sont des répertoires vous permettant d'organiser les sources à versionner, cependant vous devez respecter certaines règles afin de les utiliser correctement. En général un dépôt correspond à un projet (par exemple le dépôt "MonProjet"), le nommage est libre et vous pouvez en créer autant que nécessaire, cependant un dépôt devra impérativement contenir les sous répertoires suivants :

- trunk répertoire de travail courant
- branches répertoire de travail spécifique
- tags versions livrées aux clients


Création des répertoires
1. svn mkdir svn://localhost/MonProjet/trunk --parents2. svn mkdir svn://localhost/MonProjet/branches --parents
3. svn mkdir svn://localhost/MonProjet/tags --parents
Mot de passe domaine d'auth : Touche ENTRER

 
Nom d'utilisateur : admin
Mot de passe
: password
(voir fichier : conf/passwd)



Pour chaque création de repertoire "NotePad.exe" est exécuté.
Entrer un commentaire ici : Création de trunk ...
Sauvegarder (Ctrl+S) et Fermer (Alt+F4)




8. Tester
les dépôts

Voici comment vérifier si les dépôts et leurs répertoires sont correctement créés sur le serveur subversion.

Vérification du dépôt1. cd c:\"Program Files"\Subversion\bin\
2. svn ls svn://localhost (doit retourner : MonProjet/)
3. svn ls svn://localhost/MonProjet/ (doit retourner : branches/ tags/ trunk/)

01/11/2008

Installation du client TortoiseSVN

1. Présentation
2. Téléchargement
3. Paramétrage
4. Plugins gratuits

1. Présentation


Le client subversion est l'application qui permet d'accéder aux dépôts et donc aux sources historisées dans le serveur subversion.
Il existe de nombreux clients Subversion, ainsi, Subclipse est un plug-in subversion pour Eclipse, VisualSVN permet d'accéder à un serveur Subversion via l'IDE de Visual Studio. Pour ce qui nous concerne, nous choisissons de vous présenter TortoiseSVN qui s'intègre à l'explorateur de Windows.

2.Téléchargement

Vous pouvez télécharger la dernière version de TortoiseSVN ainsi que le LanguagePack ici http://tortoisesvn.net/downloads puis exécuter l'installation ...

3. Paramétrage


Si TortoiseSVN est installé correctement, vous devez pouvoir le visualiser en cliquant sur le bouton droit de la souris dans l'explorateur de Windows.

Configuration de la langue Française
(Vous devez avoir installé le LanguagePack correspondant)
1. Sélectionner : TortoiseSVN/Configuration
2. Menu Général / Liste déroulante "Langue" : Français



Configuration du programme de visualisation de fichiers
1. Sélectionner : TortoiseSVN/Configuration
2. Menu Prog Externes / Visualisateur de différences
3. Cocher : Externe
4. Sélectionner le chemin du programme à utiliser
(Ici "WinMerge.exe" plus pratique que TortoiseMerge installé par défaut)

4. Plugins gratuits


Comme signalé en introduction, TortoiseSVN est un client subversion qui s'intègre au système de fichier de Windows. Cependant vous pouvez préférer installer votre client Subversion sous forme d'un plug-in directement intégré à votre IDE de développement (dans ce cas
TortoiseSVN n'est plus vraiment nécessaire) et obtenir ainsi les mêmes fonctionnalités qu'avec TortoiseSVN. Pour cela vous devez juste installer le plug-in approprié à votre environnement de développement.

Plug-in pour l'IDE d'Eclipse
Télécharger : SUBCLIPSE
Aide à l'installation : http://subclipse.tigris.org/install.html

Plug-in pour Borland Developer Studio, Turbo Delphi,
Turbo C++, CodeGear RAD Studio
Télécharger : DELPHIADDINFORTORTOISESVN
http://delphiaddinfortortoisesvn.tigris.org/

Plug-in pour l'IDE Microsoft Visual Studio
Télécharger : ANKHSVN
http://ankhsvn.open.collab.net/

01/10/2008

Comment développer avec Subversion ?

1. Présentation
2. Extraction du dépôt
3. Ajout des sources dans trunk
4. Livrer ses modifications
5. Mise à jour des sources
6. Création d'un tags
7. Création d'une branche
8. Report de source
9. Gestion des conflits


1. Présentation


Votre serveur subversion et votre client sont opérationnels, nous allons décrire dans cet article l'utilisation de TortoiseSVN ainsi que les différents concepts (comme les Branches et les Tags) nécessaires au cycle de vie d'un projet géré à l'aide de Subversion.

2. Extraction du dépôt


En 1er lieu il faut récupérer les sources historisées coté serveur et les stocker en local sur son disque dur afin de pouvoir travailler dessus comme nous le ferions sans gestionnaire de version.

Extraction du dépôt
1. Clic droit dans l'explorateur Windows
2. Sélectionner "Extraire"
3. Renseigner l'URL de votre serveur Subversion (svn://localhost)

4. Renseigner le répertoire ou stocker les sources à rapatrier (C:\Subversion)




Contrôler votre copie localeVous devez voir le dépôt "Monprojet" ainsi que les répertoires
que nous avons créés lors de l'installation du serveur.
Notez que suite à l'extraction les répertoires contiennent un ".svn"
nécessaire à votre copie locale Subversion




3. Ajout des sources dans trunk


Nous avons récupéré notre dépôt mais celui-ci ne contient toujours pas de sources, il faut donc les ajouter. Pour cela supposons que notre projet contienne 3 fichiers source C# (Classe1.cs, Classe2.cs, Classe3.cs). La première opération consiste à ajouter ces fichiers au TRUNK (notre répertoire de travail courant).

Ajout d'un fichier
1. Déposer les fichiers dans le répertoire :C:\Subversion\MonProjet\TRUNK
2. Sélectionner ces fichiers
3. Clic droit dans l'explorateur Windows
4. Sélectionner : TortoiseSVN puis Ajouter

Attention à cette étape subversion n'a rien ajouté car il attend la validation de la transaction (comme une base de donnée transactionnelle attend un COMMIT)
5. Clic droit dans l'explorateur Windows
6. Sélectionner : SVNLivrer...
(ici l'ajout est effectif )



Journalisation des révisions1. Clic droit sur C:\Subversion\MonProjet\trunk
2. Sélectionner : TortoiseSVN/Voir le journal
(On voit que la dernière révision concerne l'ajout des 3 fichiers : Classe1,2,3.cs)



Tester le rapatriement des sources
1. Supprimez les fichiers Classe1,2,3.cs de votre répertoire :
C:\Subversion\MonProjet\trunk

2. Clic droit sur C:\Subversion\MonProjet\trunk
3. Sélectionner : SVN Mettre à jour
vos fichiers Classe1,2,3.cs doivent tous réapparaitre dans
C:\Subversion\MonProjet\trunk


Important : lors de l'exécution de la commande "SVNLivrer" le client envoie les sources locales vers le serveurSVN pour archivage, celui-ci est ensuite capable de restituer les sources à n'importe quel client subversion connecté au dépôt et qui exécuterait la commande "SVN Mettre à jour".

4. Livrer ses modifications


A présent vous travaillez sur les sources présentes dans "C:\Subversion\MonProjet\trunk", vos modifications terminées, vous devez les livrer au serveur subversion de façon à ce que les autres développeurs puissent en mettre à jour leurs sources avec les dernières modifications apportées.

Livraison des modifications
1. Clic droit sur "C:\Subversion\MonProjet\trunk"
2. Sélectionner : SVNLivrer ...
TortoiseSVN reconnait les fichiers ayant subit des modifications
et les proposes à la livraison, ici : Classe1.cs




5. Mise à jour des sources

Des modifications ont été apportées sur les sources par d'autres développeurs, il est donc nécessaire de pouvoir mettre à jour vos sources locales. Il est important de noter que l'opération de mise à jour décrite ci-dessous n'altérera en rien les modifications vous avez pu apporter aux fichiers de votre copie locale. Subversion compare automatiquement les modifications non livrées de votre copie locale et celles provenant du serveur afin d'effectuer la mise à jour.

Mise à jour des modifications
1. Clic droit sur "C:\Subversion\MonProjet\trunk"
2. Sélectionner : SVN Mettre à jour

6. Création d'un tags

Jusqu'à présent nous travaillions dans le répertoire courant (le trunk), mais notre projet avance et il est temps de livrer la première version à nos clients. Nous voulons donc conserver une archive des sources ayant servi à générer la version compilée et livrable à nos clients . En cas de besoins nous pourrons bien entendu rapatrier ces sources, c'est tout l'intérêt des TAGS. Attention de ne pas effectuer de livraison ultérieure sur une version TAGS car celui ci perdrait tout son sens !

État de notre référentiel avant création du TAGS



Création du Tags V1.0
1.Clic droit sur "C:\Subversion\MonProjet\trunk"
2. Sélectionner : "Branches/étiquettes"
3. Saisir vers l'URL : "svn://localhost/MonProjet/tags/V1.0"


État de notre référentiel après création du tags
de notre V1.0




Mise à jour des modifications
1. Clic droit sur "C:\Subversion\MonProjet\"
2. Sélectionner : SVN Mettre à jour



7. Création d'une branche

Prenons un peu de recul sur ce que nous sommes en train de faire et regardons du coté du cycle de vie de notre projet. Nous avons dans "trunk" les sources de la version V1.0 et nous venons de créer une archive à l'identique dans Tags. La suite logique serait de développer la V2.0 de notre projet tout en corrigeant les bugs signalés par nos clients sur la version V1.0.

Pour réaliser cela nous allons créer une branche V1.1 sur laquelle nous apporterons les
corrections des bugs signalés par les utilisateurs de la V1.0, et continuerons de travailler dans "trunk" pour la v2.0 à ceci prés que nous y reporterons si nécessaire les corrections de bugs effectuées sur la V1.1.

Création d'une branche V1.1
1. Clic droit sur "C:\Subversion\MonProjet\tags\V1.0"
2. Sélectionner : "Branches/étiquettes"
3. Saisir vers l'URL : "svn://localhost/MonProjet/branches/V1.1"



Etat de notre référentiel aprés création
de la branche V1.1



Mise à jour des modifications

1. Clic droit sur "C:\Subversion\MonProjet\"
2. Sélectionner : SVN Mettre à jour

A présent les modifications de la version 1.1 peuvent être réalisées dans "C:\Subversion\MonProjet\branches\V1.1", et les nouvelles fonctionnalités à apporter en version 2.0 peuvent être réalisées dans le "C:\Subversion\MonProjet\trunk" de façon totalement indépendante.

8. Report de source


Vous avez modifié "C:\Subversion\MonProjet\branches\V1.1\Classe1.cs" et souhaitez reporter ces modification vers "C:\Subversion\MonProjet\trunk\Classe1.cs".

Report de source
1. Utilisez un outil tels que "WinMerge.exe"
2. Reporter les modifications sur votre copie locale
3. Clic droit sur "C:\Subversion\MonProjet\trunk"
4. Sélectionner : SVNLivrer ...

9. Gestion des conflits

Un conflit survient lorsque les sources ont été modifiées par un utilisateur entre le moment ou vous les avez mises à jour sur votre disque et le moment ou vous exécutez la commande "SVNLivrer".

En cas de conflit TortoiseSVN vous indiquera qu'il n'a pas pu livrer les sources, mais pas d'inquiétude car la plupart des conflits se résolvent automatiquement en effectuant une mise à jour des sources de votre copie locale (rappel : ceci n'écrasera pas vos modifications), puis en tentant de livrer à nouveau vos modifications.

Conflit géré automatiquement
1. Clic droit sur "C:\Subversion\MonProjet"
2. Sélectionner : SVN Mettre à jour
3. Sélectionner : SVNLivrer ...

Si la solution ci-dessus ne fonctionne pas c'est que le conflit concerne la même ligne de code ! Par exemple 2 utilisateurs ont tenté de livrer une correction sur la ligne 2 de Classe1.cs. Dans ce cas seul un développeur peut déterminer quelle modification doit être retenue. Il s'agit alors pour lui de comparer les 2 codes sources et de retenir le plus pertinent.

Conflit géré manuellement
1. Modifier le fichier concerné
2. Sélectionner : TortoiseSVN / Résoudre

01/01/2006

Astuces TortoiseSVN

1. Déplacer un fichier
2. Désactiver les caches de TortoiseSVN
3. Relocaliser un dépôt avec TortoiseSVN

4. Exclure les extensions *.EXE vos livraisons


1. Déplacer un fichier avec TortoiseSVN


Supposons que vous souhaitiez déplacer le "Class1.cs" du répertoire "C:\Subversion\MonProjet\trunk\Controler" vers "C:\Subversion\MonProjet\trunk\Model".

1. Clic droit sur votre répertoire trunk
2. TortoiseSVN/Navigateur de référentiel
3. Faites glisser le fichier du répertoire "Model"
vers le répertoire "Controler"


1. Clic droit sur votre répertoire
2. SVN Mettre à jour



2. Désactiver les caches de TortoiseSVN


Le processus " TSVNCache.exe" dédié à la gestion des données en cache de TortoiseSVN peut rapidement dépasser 100 Mo en mémoire et ralentir les performances de votre machine. Pour le désactiver.

1. Clic droit dans l’explorateur de Windows
2. TortoiseSvn/Configuration
3. Recouvrements d'icônes / Cache du statut / Aucun



3. Relocaliser un
dépôt avec TortoiseSVN

L'administrateur vient de déplacer le dépôt de subversion sur une autre machine et vous souhaitez pouvoir faire pointer votre copie locale vers ce nouveau dépôt.
  • Ancien dépôt : svn://localhost/MonProjet
  • Copie locale du dépôt : C:\Subversion
  • Nouveau dépôt : svn://NouveauPC/MonProjet
1. Clic droit sur C:\Subversion
2. TortoiseSvn/Relocaliser
3. Saisissez l'emplacement du nouveau dépôt
svn://NouveauPC/MonProjet

Même principe lorsqu’un répertoire du dépôt est renommé, les autres utilisateurs doivent relocaliser leur copie locale.
  • Ancien dépôt : svn://localhost/MonProjet/trunk/rep1
  • Copie locale du dépôt : C:\Subversion\trunk\rep1
  • Nouveau dépôt : svn://localhost/MonProjet/trunk/rep2

4. Exclure les extensions *.EXE vos livraisons


Supposons que dans votre répertoire local soit compilé certains exécutables de votre application et que vous ne vouliez pas les versionner.

1. Clic droit sur votre répertoire
2. Clic sur TortoiseSVN
3. Clic sur Configuration
4. Dans le menu général, Sur le panel de droite
dans "filtre d'exclusion" saisissez "*.exe"