Il faut bien évidemment commencer par installer les outils nécessaire à l'utilisation de subversion.

# apt-get install subversion

J'ai choisis de créer un utilisateur système dédié aux opérations svn. Cet utilisateur est très subtilement appelé 'svn' et la racine des données subversion se trouve dans /var/lib/svn :

# addgroup --system svn
# adduser --system --disabled-login --ingroup svn --no-create-home --home /var/lib/svn --gecos "subversion" --shell /bin/false svn
# mkdir /var/lib/svn
# chown svn:svn /var/lib/svn
# chmod 755 /var/lib/svn

Le serveur d'accès est svnserve. Attention, c'est le choix le plus simple à mettre en place mais il souffre de sérieux handicaps par rapport aux alternatives. Je préfère limiter l'accès du serveur svn à un répertoire donné pour éviter d'éventuelles fuites.

$ grep svn /etc/services 
svn             3690/tcp        subversion      # Subversion protocol
svn             3690/udp        subversion
$ grep svn /etc/inetd.conf 
svn stream tcp nowait svn /usr/bin/svnserve svnserve -i -r /var/lib/svn
# /etc/init.d/openbsd-inetd restart

Maintenant que nous avons un serveur d'accès, il faut créer des données, c'est un peu le jeu ma pauv' Lucette. Un dépot pour un projet fictif appelé 'project' est un début.

# svnadmin create /var/lib/svn/project
# chown -R svn:svn /var/lib/svn/project

Dans le cas d'un dépôt ayant besoin d'un accès authentifié, il y a deux fichiers à modifier :
/var/lib/svn/project/conf/conf/svnserve.conf :

[general] 
password-db = passwd
realm = project

/var/lib/svn/project/conf/conf/passwd :

[users]
user = password

L'environnement est maintenant complètement disponible, on peut essayer de récupérer les sources du projet (vide) et y créer puis publier un fichier.

$ svn co svn://localhost/project
$ cd project
$ touch foo
$ svn add foo
$ svn ci -m 'test' foo
$ svn list
foo

Si tout se passe bien c'est gagné, sinon, il est utile de se pencher sur l'excellent livre O'Reilly traitant du sujet.

Attention, votre configuration svn est minimale et conviendra pour un petit serveur personnel. Dans le cas d'un projet plus important de gestion de code il faudra probablement se tourner vers un accès webdav grâce à apache (lighttpd ne le supporte pas encore !!) et un système d'authentification plus performant.