ubuntu-fr

Communauté francophone des utilisateurs de Kubuntu

[[subversion]]

Piste: » subversion


Subversion

Subversion (abrégé SVN) est un système de gestion de versions visant à remplacer CVS.

Installation

Utilisation

Installer un serveur svn

Vous pouvez créer un repository dans le répertoire de votre choix par la commande

svnadmin create /chemin/du/repository

Vous pouvez ensuite éditer les fichiers de configuration (pour choisir mot de passe et autres) dans le répertoire créé.

Pour lancer le serveur, il suffit de lancer :

svnserve -d -r /chemin/du/repository

Pour le mettre au démarrage, créez un script exécutable /etc/init.d/svnserve (en adaptant vos chemins svn) :

#!/bin/sh

set -e
if [ -x /usr/bin/svnserve ] ; then
	HAVE_SVNSERVE=1
else
	echo "Svnserve not installed."
	exit 0
fi

. /lib/lsb/init-functions

case "$1" in
  start)
	log_action_begin_msg "Starting SVN server"
        svnserve -d -r /chemin/du/repository
	log_action_end_msg $?
        ;;
  stop)
	log_action_begin_msg "Stoping SVN server"
        start-stop-daemon --stop --exec /usr/bin/svnserve
	log_action_end_msg $?
        ;;
  force-reload|restart)
	$0 stop
	$0 start
	;;
  *)
  	echo "Usage: /etc/init.d/svnserve {start|stop|restart|force-reload}"
	exit 1
	;;
esac

exit 0

Ne pas oublier de rendre exécutable le script :

sudo chmod +x /etc/init.d/svnserve

Lancer avec un utilisateur SVN

Jusqu'ici, le serveur SVN est lancé avec votre utilisateur. Ce qui implique que le serveur a les même droits que vous.

Il est donc recommandé de créer un utilisateur pour lancer le serveur :

sudo addgroup svn --system
sudo adduser svn --system --home /chemin/du/repository --no-create-home --ingroup svn
sudo chown -R svn: /chemin/du/repository

Maintenant que nous avons un utilisateur spécifique, il faut changer le script de lancement du serveur SVN comme ceci:

#!/bin/sh

set -e
if [ -x /usr/bin/svnserve ] ; then
	HAVE_SVNSERVE=1
else
	echo "Svnserve not installed."
	exit 0
fi

. /lib/lsb/init-functions

case "$1" in
  start)
	log_action_begin_msg "Starting SVN server"
        start-stop-daemon --start --chuid svn:svn --exec /usr/bin/svnserve -- -d -r /chemin/du/repository
	log_action_end_msg $?
        ;;
  stop)
	log_action_begin_msg "Stoping SVN server"
        start-stop-daemon --stop --exec /usr/bin/svnserve
	log_action_end_msg $?
        ;;
  force-reload|restart)
	$0 stop
	$0 start
	;;
  *)
  	echo "Usage: /etc/init.d/svnserve {start|stop|restart|force-reload}"
	exit 1
	;;
esac

exit 0

Donc remplacer –chuid svn:svn par ce que vous avez décider avant si vous n'avez pas utilisé comme dans l'exemple svn comme nom d'utilisateur et groupe.

Pour ajouter le serveur SVN au démarrage de la machine :

sudo update-rc.d svnserve defaults

Lancez-le alors avec :

/etc/init.d/svnserve start

Installer un serveur Subversion utilisant apache

Il faut installer Apache et une bibliothèque de Subversion pour Apache. Il faut donc installer les paquets suivants : apache2 libapache2-svn

Configuration

La configuration principale du serveur SVN se situe dans le fichier /etc/apache2/mods-available/dav_svn.conf.

Spécifier le nom de votre dépôt SVN qui correspondra en fait à un alias apache ensuite accessible via http://localhost/devsvn. Par exemple, si vous voulez que votre dépôt s'appelle « /devsvn », modifier comme ceci le fichier de configuration :

<Location /devsvn>

Enlever le commentaire sur la ligne pour activer le module :

DAV svn

Enlever le commentaire et faire pointer vers votre répertoire SVN la ligne suivante :

SVNPath /chemin/vers/RepDuProjet

Enlever le commentaire devant la ligne de fermeture de l'environnement ouvert précédemment :

</Location>

Redémarrer apache2 :

sudo invoke-rc.d apache2 restart

Créer la structure initiale du dépôt avec la commande1) :

svnadmin create /chemin/vers/RepDuProjet

Donner les droits d'accès au dépôt à Apache :

chown -R www-data /chemin/vers/RepDuProjet

Vérifier à l'aide d'un navigateur que http://localhost/devsvn réponde.

Authentification

Modifier « /etc/apache2/mods-available/dav_svn.conf » pour activer l'authentification :

# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic
AuthName "Depot Subversion"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user

Puis créer, avec htpasswd, le fichier « /etc/apache2/dav_svn.passwd » pour un utilisateur. Ex. :

sudo htpasswd -cs /etc/apache2/dav_svn.passwd utilisateur1

Pour créer d'autres utilisateurs, utiliser la commande :

sudo htpasswd -s /etc/apache2/dav_svn.passwd utilisateur

Faire appartenir ce fichier à l'utilisateur d'Apache :

sudo chown www-data:www-data /etc/apache2/dav_svn.passwd

Voilà, votre dépôt doit maintenant être accessible via les commandes classique svn update et svn commit sous l'URL http://machine.mondomain.org/devsvn.

Installer le plugin de Subversion dans Eclipse

FIXME

En gros dans Eclipse il faut faire la chose suivante :

Menu Help → Softwares updates → Find and install…

Ajoutons à cette interface l'URL ci-dessous pour télécharger et installer le nouveau plugin

http://subclipse.tigris.org/update

mise à jour→ http://subclipse.tigris.org/update_1.2.x pour eclipse 3.2+

Pour plus d'informations sur la procédure d'installation, n'hésitez pas à jeter un coup d'œil à cette autre URL: http://subclipse.tigris.org/install.html

Note : Pour pouvoir installer de nouveaux plugin, lancer eclipse en utilisant un terminal et en tapant :
gksudo eclipse

FIXME

Javahl : Si vous obtenez une erreur de type ClientHlException en activant le client JavaHL (plutot que par jni) dans les préférences (Team→svn):
sudo apt-get install libsvn-javahl

Et sous gutsy lancer eclipse de cette façon:

eclipse -vmargs -Djava.library.path=/usr/lib/jni/

Scripts SVN pour Nautilus

Installez le paquet nautilus-script-collection-svn

Puis activez-le :

nautilus-script-manager enable Subversion

Et enfin redémarrez Nautilus.

nautilus --restart

Méthode alternative

Un outil réalisé en Python couplé aux scripts Nautilus mais permettant en même temps l'utilisation des emblèmes de Nautilus (à l'instar de TortoiseSVN sous Windows) est également disponible, il s'agit de NautilusSvn, actuellement en version 0.11.

Téléchargez et installez le paquet .deb présent à l'adresse suivante : http://jasonfield.com/freebies/ Sinon : http://code.google.com/p/nautilussvn/

Liens utiles

1) « /var/svn/ » est une bonne base.

subversion.txt · Dernière modification: 2008/10/13 22:40 par 62.167.102.37, 127.0.0.1
Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL