Installation & Utilisation de Subversion

user_icon admin | icon2 Non classé | icon4 26/11/2006 15h56| Type doc: article| Type File: txt| icon3 3 Comments

Installation / Utilisation de SVN


1. Installation d'un serveur SVN

1.1. Description :

Le but de ce document est de fournir une méthode permettant l'installation d'un serveur SVN sur un système Debian et de l'utiliser

1.2. Installation :

apt-get install subversion

1.3. Configuration :

Création d'un utilisateur 'svn' dont le répertoire personnel sera /var/lib/svn

adduser --home /var/lib/svn --shell /bin/false --disabled-password svn

Création d'un dépot pour subversion

cd /var/lib/svn
svnadmin create --fs-type fsfs mon_depot
chown -R svn mon_depot

Modifier le script mon_depot/conf/svnserve.conf comme ci-dessous

[general]
anon-access = read
auth-access = write
password-db = passwd
realm = Mon premier depot SVN

Et le fichier mon_depot/conf/passwd pour ajouter les accès au dépot.

[users]
moi = mon_mot_de_passe
un_autre = son_mot_de_passe

Créer un script de démarrage du serveur SVN : /etc/init.d/svnserve.sh

#!/bin/sh

case "$1" in
   start)
        start-stop-daemon --start --quiet --make-pidfile --pidfile /var/run/svnserve.pid --exec /usr/bin/svnserve -c svn:svn -- -d --listen-port 3690 --listen-host 127.0.0.1 -r /var/lib/svn/mon_depot ;;

esac

exit 0

Modification des droits:

chmod +x /etc/init.d/svnserve.sh
chown -R svn.www-data /var/lib/svn

L'éxécution du script démarre le serveur SVN.

/etc/init.d/svnserve.sh start

2. SVN et le Web

2.1. Visualisation du dépôt SVN par le Web

Un module d'Apache2 nous permet de visualiser le contenu d'un dépot SVN.

apt-get install apache2 libapache2-svn websvn

Ajouter un alias DNS au serveur, par exemple 'svn' Dans /etc/apache2/sites-available/svn, ajoutez :

</Directory>
        Alias /websvn "/usr/share/websvn"
       <Directory "/usr/share/websvn">
              Options Indexes MultiViews
               AllowOverride All
               Order allow,deny
               Allow from all
</Directory>

Et redémarrer le serveur Apache :

/etc/init.d/apache2 restart

3. Utilisation

3.1. Création d'un projet

Imaginons que nous ayons un répertoire ~/mes_scripts et que nous souhaitions 'versionniser' son contenu.

svn --username moi --password mon_mot_de_passe \
    import ~/mes_scripts svn://127.0.0.1/mes_scripts \
    -m "Mise en place sous Subversion"

3.2. Récupération d'un projet

La version initiale étant stockée sur le serveur, je renomme le répertoire local en mes_scripts.orig. Et maintenant, je peux demander au gestionnaire de versions de me créer une copie de travail locale qui supporte le 'versionning'.

svn --username moi --password mon_mot_de_passe co svn://127.0.0.1/mes_scripts

3.3. Suivi des modifications

On peut maintenant travailler sur la copie locale, et suivre les modifications que l'on a effectué par rapport à la version que l'on a initialement récupérée.

~/mes_scripts/$ svn diff un_script.sh

Ou encore ' commit', Cela consiste à transférer les modifications effectuées dans la copie locale vers le serveur SVN.

3.4. Validation des modifications

~/mes_scripts/$ svn commit -m "Ajout fonction toto ..."

3.5. Mise à jour de la copie locale

Ou encore ' update'. Quelqu'un a effectué des modifications sur une autre copie de travail, et a validé celles-ci sur le dépôt. L'opération ici consiste à remettre à jour ma copie de travail pour intégrer ces modifications.

~/mes_scripts/$ svn update

3.6. Faire des modifications

Modifications sur la structure du projet fichiers (supprimer, ajouter, ou renommer un fichier) :

~/mes_scripts/$ svn add nom_fichier
~/mes_scripts/$ svn del nom_fichier
~/mes_scripts/$ svn mv nom_fichier
~/mes_scripts/$ svn status

Commentaires:

user_iconUlhume icon4 12/10/2006 - 22h5
Un petit détail qui as son importance, le fsfs du "svnadmin create --fs-type fsfs mon_depot". C'est à ne surtout pas oublier car c'est cela qui a rendu SVN utilisable... En effet, les premières versions fonctionnait (et fonctionne toujours) avec un back-end DB4 bercley qui est une vrai m... catastrophe :)) Donc à ne surtout pas omettre si l'on tient à l'intégrité de son repository. Sinon, autre détail, svn existe aussi en serveur "stand-alone" via svnserve. L'avantage est que cela prends beaucoup moins de ressources (pas d'apache) et que c'est aussi plus rapide (protocole binaire). L'incinvénient c'est que cela passe beaucoup moins bien sur les firewalls (ce n'est pas du http comme le webdav de svn).
user_icondab icon4 12/10/2006 - 23h43
Merci pour ta remarque :)
Mais sinon c'est bien svnserve que j'utilise (package subversion de Debian). L'apache me sert simplement pour la visualisation du dépot.
user_iconulhume icon4 13/10/2006 - 11h39
Ah ok :)

Add a comment

Validator_logo
Catapulse v0.06
( 0.117563 s)