P
'
t
i
t
e
C
h
a
t
t
e
 
spacer~ CROWDED ELEVATOR SMELL DIFFERENT TO MIDGET Articles | Connexion
 
~SubVersion

Précédent  
  Logiciels  
  Suivant
 Présentation

De plus en plus aujourd'hui les équipes de développement sont confrontés à des problèmes de gestion des codes sources. En effet, il n'est pas rare qu'un développement connaisse des divergeances au cours de son évolution qu'elles soient voulues ou accidentelles. Cela amène bien souvent à des discordances voire des corruptions dans les repositories des codes sources.

Pour faire face à ce problème, nous avons vu emmerger depuis quelques années des systèmes dits de "versionning" permettant de gerer de manière semi-automatique les versions et releases de codes sources.

Dans cet article, nous allons en l'occurence parler de SubVersion ou SVN pour les intimes.
 Sommaire


 Introduction

SubVersion constitue l'un des systèmes de versionning open-source les plus aboutis à ce jour. Fonctionnant sur le modèle Client/Serveur, SubVersion s'articule sur la base de répertoires de base (repositories) dans lequels sont contenus un système de fichier propre à SubVersion et permettant de se souvenir de toutes les modifications (qui ?, quand ?, comment ? et surtout quoi ?) qui on été apportées à son contenu.

Quoi de plus que CVS ?

Là ou se distingue SubVersion de CVS, c'est non seulement par sa simplicité de mise en oeuvre et d'utilisation mais aussi par son intégration à Apache et son exploitation du protocole WebDAV.

Bien entendu, SubVersion peut fonctionner en standalone et à plusieurs égards. Du coté serveur, hormis sur plateforme Win32, SubVersion propose de nombreuses distributions binaires pour diverses plateformes. Et du coté client, quasiment toutes les plateformes les plus utilisées aujourd'hui sont représentées.


 Les clients SVN

Coté Win32, Tigris.org qui maintient la version officielle de SubVersion propose un installeur pour une version de base, cela dit, il est fortement recommandé, et tigris.org vous y encourage, d'utiliser le pendant SVN de ToirtoiseCVS, justement nommé TortoiseSVN.

Doté d'une interface plus qu'agréable, TortoiseSVN se révèle extrêment intuitif pour peu que vous maîtrisiez la langue de Shakespeare.




Le menu contextuel de TortoiseSVN

Nous retrouvons donc toutes les fonctions propres à un système de versionning digne de ce nom, mais TortoiseSVN va bien au dela de ce que l'on a pu voir avec CVS. Par exemple, là ou CVS demeurait contraignant, SubVersion implémente nombre de simplifications qui vont véritablement rendre le sourire aux programmeurs parmis lesquelles :

  • Le checkout se fait par une seule URL, plus besoin de gerer le type d'autentifcation, le référenciel, etc...
  • L'importation d'un nouveau projet dans un repository existant se fait en quelques clics
  • Possibilité de créer des repositories locaux sans avoir recours à un serveur
  • Possibilité de déplacer un projet, que ce soit depuis un repository local vers un serveur et ceci très facilement
  • Possibilité d'effacer tout ou partie d'un projet sans risque de corrompre le repository


 Installation d'Apache 2.0

Nous allons aborder dans ce chapitre l'installation d'un serveur SubVersion avec Apache 2.0 avec une gestion des acces utilisateurs en écriture.

Afin de proceder à cette installation dans de bonnes conditions, nous allons commencer par réunir tous les éléments nécéssaires au succès de notre tâche :


Une fois ces deux composants réunis sur votre disque dur, nous pouvons débuter l'installation d'Apache.

Dans notre exemple, nous allons créer un répertoire C:\webserver\ qui servira de base d'installation pour notre serveur.

Afin d'éviter tout conflit avec un serveur existant, nous allons installer Apache sur le port 8080 après avoir rempli les informations serveur.



Configuration des informations serveur

Après avoir validé et choisi l'installation de type "Typical", nous allons selectionner le répertoire de destination comme suit.



Selection du répertoire d'installation


 Intégration de SubVersion dans Apache 2.0

Nous allons ensuite procéder à l'installation puis l'integration de SubVersion dans Apache.

L'installation du client officiel SubVersion ne nécéssite aucune configuration partculière si ce n'est le choix du répertoire d'installation.



Selection du répertoire d'installation

Une fois l'installation du client SubVersion terminée, nous pouvons procèder à l'integration des modules SVN et WebDAV dans Apache. Cette opération, comme a peu près toutes les fonctionnalité de SubVersion est relativement simple à effectuer.

Pour commencer, nous allons copier les module WebDAV et Auth de SubVersion dans le répertoire "modules" d'Apache par le biais d'une commande dans l'invite de commandes.


copy C:\webserver\Subversion\bin\*.so C:\webserver\Apache2\modules\

       
      
JextCopier dans Jext | Jext | Plugin Codegeek
Nous allons donc maintenant pouvoir éditer le fichier de configuration d'Apache, dans notre cas "C:\webserver\Apache2\conf\httpd.conf" en commencant par les directives LoadModule.


LoadModule dav_module         modules/mod_dav.so
LoadModule dav_svn_module     modules/mod_dav_svn.so

       
      
JextCopier dans Jext
Nous allons ensuite configurer les directives Location, permettant à Apache de rendre disponible le repository que nous allons créer un peu plus tard.

En même temps que l'écriture de cette directive, nous allons implémenter la gestion des utilisateurs en qui auront le droit à l'écriture.

Ces directives sont à placer en fin de fichier.


#Chemin web du repository (http://localhost:8080/svn/repository/)
<Location /svn/repository>
	DAV svn
	
	#Chemin local du repository
	SVNPath C:\webserver\repositories
	
	#Type d'authentification
	AuthType Basic
	AuthName "Subversion exemple repository"
	#Chemin du fichier apache contenant la liste des utilisateurs
	AuthUserFile C:\webserver\.htpasswd
	
	#On applique ici une restriction par mot de passe sauf pour les directives
	#GET, PROPFIND, OPTIONS et REPORT qui autorisent la lecture aux
	#utilisateurs anonymes
	<LimitExcept GET PROPFIND OPTIONS REPORT>
			Require valid-user
	</LimitExcept>
</Location>

       
      
JextCopier dans Jext
Une fois ces directives crées dans le fichier de configuration Apache, nous pouvons proceder à la création des utilisateurs qui seront habilités à écrire dans le repository.

Pour réaliser ceci, nous allons créer le fichier "C:\webserver\.htpasswd"

Astuce : Certains d'entre vous éprouverons peut être quelques soucis à créer un fchier exactement nommé ".htpasswd" avec les outils standards de windows. L'astuce consiste à créer dans un premier temps un fichier simplement nommé "htpasswd.txt" pusi de le renommer avec la commande suivante dans l'invite de commandes :


ren htpasswd.txt .htpasswd

       
      
JextCopier dans Jext
Passons maintenant à l'édition du fichier ".htpasswd". Le principe de création des utilisateurs est simple, en effet sous Win32 avec une installation standard d'Apache, les mots de passes sont stockés en clair dans le fichier. A chaque ligne, un nouvel utilisateur et son mot de passe séparés par deux points.


RICO:le_mot_de_passe_de_rico
Gfx:le_mot_de_passe_de_gfx

       
      
JextCopier dans Jext
Nous allons maintenant proceder à la création du repository en local tel que nous l'avons déclaré dans le fichier "httpd.conf" d'Apache.

Pour ce faire, nous allons créer un répertoire nommé "repositories" dans le répertoire "C:\webserver\". Une fois le répertoire crée, nous pouvons le transformer en repository par le biais de la commande dans une invite MS-DOS.


svnadmin create C:\webserver\repositories

       
      
JextCopier dans Jext
Astuce : Si vous avez installé TortoiseSVN, vous pouvez par le biais de la commande du menu contextuel "Create Repository Here" créer votre repository en deux clics. Prennez bien garde toutefois à bien choisir votre système de fichier, en effet, l'utilisation du système Berkeley DB requiert que votre système de fichier principal soit de type POSIX strict, cela exclue donc son utilisation sur des disques réseaux de type NFS, SMB, AFS, etc...


 Test de la configuration

Il est temps maintenant de passer au test de la configuration du serveur, et plus précisément de l'integration de SubVersion dans Apache.

Pour ce faire, démarrez d'abord Apache.


C:\webserver\Apache2\bin\Apache.exe -w -f 
"C:\webserver\Apache2\conf\httpd.conf" -d "C:\webserver\Apache2\."

       
      
JextCopier dans Jext | Jext | Plugin Codegeek
Une fois le serveur Apache démarré, ouvrez votre navigateur internet favori et saisissez l'adresse "http://localhost:8080/svn/repository/".



Page de garde du repository

Si ce qui s'affiche ressemble à l'image précédente, vous avez terminé la configuration de votre serveur SubVersion, dans le cas contraire, recommencez la procédure.


 Importation d'un projet

il est maintenant temps d'importer un projet dans votre nouveau serveur SubVersion. Pour réaliser cette tâche, nous allons utiliser TortoiseSVN. Pour ceux d'entre vous qui n'auraient pas encore installé TortoiseSVN, faites-le dès à présent, aucune condition particulière n'est requise pour cete installation si ce n'est le fait de redémarrer votre machine pour bénéficier des icones de status SVN.



Option import du menu contextuel de TortoiseSVN

Ouvrez l'explorateur de fichiers puis faites un clic droit sur le répertoire contenant votre projet à importer, choisisez le menu en cascade de TortoiseSVN puis l'option Import.



Selection du repository

Choisissez la destination, dans notre cas "http://localhost:8080/svn/repository/monprojet" puis validez, vous allez alors devoir remplir les informations d'identification concernant l'écriture dans votre repository, reportez vous au login et mot de passe que vous avez saisi dans le fichier ".htpasswd"



Boite de dialogue d'importation



par Erik LOUISE
erik.louise@progx.org
http://www.progx.org
Dernière mise à jour : 14/10/2006


Précédent  
  Logiciels  
  Suivant

 
#ProgX©2005 Mathieu GINOD - Romain GUY - Erik LOUISE