Installation de subversion

# apt-get install subversion subversion-tools

Accès distant au dépot via svnserve

svnserve est un serveur inclut dans subversion. Aucun paquet supplémentaire n'est necessaire. Ajout d'un utilisateur svn pour lancer svnserve

# adduser svn --system

Les dépôts seront stockés dans le dossier /home/svn/.

Pour permettre l'accès au dépôt il faut démarrer le serveur svnserve. Pour cela le petit script svn suivant placé dans /etc/init.d va permettre de le démarer comme n'importe quel autre serveur.

 1  #!/bin/sh
 2  # /etc/init.d/svn: set up the svnserve server
 3  ### BEGIN INIT INFO
 4  # Provides:          svn
 5  # Required-Start:    $local_fs
 6  # Required-Stop:     $local_fs
 7  # Should-Start:      $named
 8  # Should-Stop:       $named
 9  # Default-Start:     S
10  # Default-Stop:
11  ### END INIT INFO
12 
13  set -e
14 
15  PATH=/bin:/usr/bin:/sbin:/usr/sbin
16  SOCKET_DIR=/tmp/.X11-unix
17  ICE_DIR=/tmp/.ICE-unix
18 
19  . /lib/lsb/init-functions
20  . /etc/default/rcS
21 
22  case "$1" in
23  start)
24        log_daemon_msg "Starting svnserve daemon" "svnserve"
25        start-stop-daemon --start --quiet --background --pidfile /var/run/svnserve.pid --make-pidfile --exec \
26        /usr/bin/svnserve -c svn:svn -- -d --listen-port 3690 -r /home/svn
27        log_end_msg $?
28        ;;
29  stop)
30        log_daemon_msg "Stopping svnserve daemon" "svnserve"
31        killall svnserve
32        log_end_msg $?
33        rm -f /var/run/svnserve.pid
34        ;;
35 
36  *)
37        echo "Usage: /etc/init.d/rsync {start|stop}"
38        exit 1
39        ;;
40  esac
41  exit 0

Pour arrêter le serveur la commande start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/svnserve.pid aurait du suffir, cependant il y a une petite erreur lors de la création du fichier pid de l'application ce qui ne permet pas d'arrêter svnserve.

Le fichier /etc/init.d/svn doit être executable.

# chmod +x /etc/init.d/svn

Pour démarer svnserve:

# service svn start

Ajout d'un dépôt

La commande svnadmin permet d'administrer les dépôts subversion.

# cd /home/svn
# svnadmin create nouveau_depot
# chown -R svn:svn nouveau_depot

Configuration du dépôt pour svnserve

Le fichier /home/svn/nouveau_depot/conf/svnserve.conf permet de configurer les options d'accès du dépôts via SVNserve.

[general]
anon-access = read
auth-access = write
password-db = passwd
realm = Mon dépôt SVN

Les autorisation de lecture/écriture sur le dépôt sont définies via les variables anon-access pour les utilisateurs non authentifiés et auth-access pour les utilisateurs authentifiés. Trois valeurs peuvent être utilisées:

  • none: aucun accès .
  • read: accès en lecture seule
  • write: accès en lecture/écriture

L'option realm permet de spécifier un nom pour le dépôt et l'option password-db de spécifier où seront stockées les logins et mots de passe des utilisateurs.

Le fichier password ressemble à ceci:

[users]
login = mot_de_passe
login = mot_de_passe
login = mot_de_passe

Sources