SVN (Subversion)
De GioWiki.
pour
SVN (Subversion)
Aller à :
Navigation
,
rechercher
== Création d'un dépôt svn pour un projet == svnadmin create /var/svn/projet Attention à ce que votre projet appartienne bien à svn et non à root chown -R svn:svn /var/svn/projet == Configuration == Vérifier que le port tcp 3690 est bien ouvert pour svn Lancer le daemon '''svnserve -d -r /var/svn''' afin de pouvoir se connecter au dépôt svn. === Création des utilisateurs SVN === Dans le répertoire /var/svn/projet/conf/ Il faut éditer le fichier svnserve.conf avec au minimum : <pre> [general] # Les utilisateurs non auth : none/read/write anon-access = none # Les utilisateurs auth : none/read/write auth-access = read # le fichier de password password-db = passwd # Cette option spécifie l'authentification du référentiel. # Si deux repo ont les mêmes référentiels d'authentification, # ils devraient avoir le même mot de passe de base de données, et vice versa. # Le domaine par défaut est le référentiel uuid. realm = projet1 </pre> Il faut éditer le fichier passwd pour qu'il ressemble à : <pre> [users] # nom = mot de passe user = password </pre> /!\ Attention à ne pas laisser d'espaces aux début des lignes, sinon ça ne fonctionne pas. === Automatiser le lancement de SVN === Jusqu'ici, le serveur SVN est lancé avec votre utilisateur. Ce qui implique que le serveur a les mêmes droits que vous. Il est donc recommandé de créer un utilisateur pour lancer le serveur et le définir comme propriétaire du dépôt (nous prendrons ici l'utilisateur svn) : addgroup svn --system adduser svn --system --home /var/svn --no-create-home --ingroup svn chown -R svn: /var/svn Maintenant que nous avons un utilisateur spécifique, pour exécuter SVN au démarrage, il faut créer un script exécutable /etc/init.d/svnserve/ contenant le code suivant. /!\ Attention à partir de Debian 6.0 il faut ajouter l'entête BEGIN INIT INFO pour éviter le problème suivant - insserv: warning: script 'svnserve' missing LSB tags and overrides <pre> #!/bin/sh # ### BEGIN INIT INFO # Provides: svnserve # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start and stop svnserve daemon at boot time # Description: Controls the main subversion server \svnserve\ with default params. ### END INIT INFO 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 /var/svn 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 </pre> Ne pas oublier de rendre exécutable le script : chmod +x /etc/init.d/svnserve Vous pouvez alors respectivement le démarrer, redémarrer et arrêter à l'aide des commandes suivantes : /etc/init.d/svnserve start /etc/init.d/svnserve restart /etc/init.d/svnserve stop Pour ajouter le serveur SVN au démarrage de la machine : update-rc.d svnserve defaults == Commandes de base == http://doc.ubuntu-fr.org/subversion#commandes_de_base Pour les commandes suivantes on supposera que l'on est dans le répertoire local du svn mkdir projet_local cd projet_local Rapatrier le projet en local svn checkout svn://server/projet . --username user Vérifier l'état des fichiers local depuis le dernier checkout svn status Ajouter des fichiers au svn svn add fichier répertoire/ Mettre à jour sa version locale (à effectuer avant le commit) svn update Envoyer ses modification sur le serveur svn svn commit fichiers répertoires/ -m "Raison du commit" = Gestion d'un svn local = == Import des fichiers == svn import /var/www/projet file:///var/svn/projet/ -m "Premier Import" == Rapatriement du répertoire svn == svn checkout file:///var/svn/projet/ /var/www/projet/ = Éditer un message de commit = Si vous avez oublié de mettre un message à votre commit ou bien si il est incomplet, voici la procédure à suivre pour pouvoir éditer ce log. Tout d'abord, sur le dépôt de votre projet (sur le serveur svn), allez faire les actions suivantes : cd /var/svn/projet/hooks/ cp pre-revprop-change.tmpl pre-revprop-change chown svn:svn pre-revprop-change chmod a+x pre-revprop-change Ensuite, de retour dans votre répertoire habituel de travail, tapez la commande suivante : svn propset -r <numero_de_revision> --revprop svn:log "<Nouveau message de commit.>" Vous n'avez plus qu'a supprimer le fichier précédemment copié sur le serveur pour interdire de nouveau l'édition des messages de logs rm /var/svn/projet/hooks/pre-revprop-change
Revenir à la page
SVN (Subversion)
.
Affichages
Page
Discussion
Voir le texte source
Historique
Outils personnels
Connexion
Navigation
Accueil
Communauté
Actualités
Modifications récentes
Page au hasard
Aide
Rechercher
Boîte à outils
Pages liées
Suivi des pages liées
Pages spéciales