Installation
Pour installer Subversion, rien de plus simple, vous savez sûrement comment procéder :
aptitude !
Code : Console | asi-server:~# aptitude install subversion |
C'est tout pour l'installation : qui ose encore dire que Linux est compliqué ?
Configuration
Le problème maintenant, ça va être de faire « tourner » Subversion.
Mais... On vient de l'installer, non ? Ça ne suffit pas ?
Eh bien non, en fait, Subversion propose plusieurs solutions pour être exécuté, on peut le faire tourner en
daemon, via
inetd, via
Apache/
WebDAV ou je ne sais quoi encore. Du fait de cette diversité, il faudra configurer nous-mêmes la manière de lancer Subversion. Quand on connaît l'astuce, c'est d'une grande simplicité.
Tout d'abord, créez le dossier
/var/svn, c'est dans ce dossier que l'on placera nos dépôts SVN.
Code : Console | asi-server:~# mkdir /var/svn |
Libre à vous de choisir un autre dossier, si vous avez un deuxième disque dur et souhaitez placer vos dépôts dessus, aucun problème.
Il vous faut maintenant créer le fichier
/etc/init.d/svnserve : pour ce faire, utilisez votre éditeur de texte préféré, pour ma part ce sera
nano.
Code : Console | asi-server:~# nano /etc/init.d/svnserve |
Dans ce fichier, il faudra placer un script qui permettra au système de démarrer le serveur SVN à chaque démarrage de la machine ; à moins de bien connaître le
bash, ce script, vous n'allez pas le pondre : je vous le donne donc, c'est une version très basique mais qui fonctionne très bien.
Code : Bash 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 | #!/bin/sh
do_start () {
svnserve -d -r /var/svn --pid-file /var/run/svnserve.pid
}
do_stop () {
start-stop-daemon --stop --quiet --pidfile /var/run/svnserve.pid
}
case "$1" in
start)
do_start
;;
stop)
do_stop
exit $?
;;
restart)
do_stop
sleep 1s
do_start
;;
reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
*)
echo "Usage: $0 start|stop|restart" >&2
exit 3
;;
esac
|
La commande qui nous intéresse dans tout ce charabia c'est
svnserve -d -r /var/svn. Le paramètre
-d contraint de lancer le serveur en
daemon, le paramètre
-r /var/svn indique la racine des dépôts, c'est-à-dire le dossier où seront stockés les dépôts ; si vous souhaitez placer les dépôts ailleurs, c'est ce paramètre qu'il vous faudra adapter.
Il faut maintenant indiquer au système que ce fichier est exécutable, et qu'il doit être exécuté à chaque démarrage de la machine. Pour indiquer que le fichier est exécutable, on utilisera tout simplement
chmod ; pour indiquer que c'est un programme à démarrer automatiquement, il faudra utiliser une autre commande,
update-rc.d.
Code : Console | asi-server:~# chmod +x /etc/init.d/svnserve
asi-server:~# update-rc.d svnserve defaults
Adding system startup for /etc/init.d/svnserve ...
/etc/rc0.d/K20svnserve -> ../init.d/svnserve
/etc/rc1.d/K20svnserve -> ../init.d/svnserve
/etc/rc6.d/K20svnserve -> ../init.d/svnserve
/etc/rc2.d/S20svnserve -> ../init.d/svnserve
/etc/rc3.d/S20svnserve -> ../init.d/svnserve
/etc/rc4.d/S20svnserve -> ../init.d/svnserve
/etc/rc5.d/S20svnserve -> ../init.d/svnserve
asi-server:~# /etc/init.d/svnserve start |
Voilà ! Votre serveur est prêt à être utilisé !
Si un jour vous voulez vous en débarrasser, vous pouvez utiliser cette commande :
update-rc.d -f svnserve remove.
Créer un dépôt
Faire un dépôt
Maintenant que le serveur est fonctionnel, il nous faut créer un dépôt SVN ; créons le dépôt '
sdz' par exemple.
Pour créer le dépôt, nous allons utiliser
svnadmin : retenez-la, elle est très utile ; si vous voulez plus d'informations sur cette commande, tapez
svnadmin help dans la console. La « sous-commande » de
svnadmin que nous allons utiliser est tout simplement
create, qui signifie « créer » en anglais.
Code : Console | asi-server:~# svnadmin create /var/svn/sdz |
Le dépôt est créé mais pas encore réellement utilisable, il faut d'abord définir les droits des utilisateurs ainsi que les logins : ces informations sont stockées dans les fichiers
svnserve.conf et
passwd qui sont eux-mêmes stockés dans le dossier
conf qui, lui, est stocké à la racine de votre dépôt,
/var/svn/sdz dans notre cas.
Les droits
Les droits (qui sont très basiques) sont contenus dans le fichier
/var/svn/sdz/conf/svnserve.conf. Ouvrez-le, cherchez ces lignes et supprimez le symbole
# qui se trouve devant :
Citation : /var/svn/sdz/conf/svnserve.conf# anon-access = read
# auth-access = write
# password-db = passwd
Maintenant que ces trois lignes ne sont plus en commentaire, il faut faire en sorte que les utilisateurs qui n'ont pas de login ne puissent pas accéder au dépôt, et que ceux qui en ont un puissent lire et écrire les fichiers. Il faut tout simplement éditer deux des lignes que vous venez de voir pour qu'elles ressemblent à ça :
Citation : /var/svn/sdz/conf/svnserve.confanon-access = none
auth-access = write
password-db = passwd
anon-access = none signifie que les utilisateurs anonymes (sans login) n'auront aucun accès.
auth-access = write donne les droits d'écriture (et de lecture) aux utilisateurs enregistrés.
password-db = passwd indique l'emplacement du fichier qui contient les mots de passe. Si vous avez besoin de placer le fichier à un endroit particulier ou si vous voulez partager un même fichier entre plusieurs dépôts, vous pouvez en indiquer le chemin ici.
Les utilisateurs
Pour ajouter ou modifier les utilisateurs, c'est très simple : les utilisateurs sont listés dans le fichier
/var/svn/sdz/conf/passwd. Ouvrez ce fichier et en dessous de
[users], placez votre login sous cette forme :
Citation : /var/svn/sdz/conf/passwdnom = motdepasse
Si mon nom est
miaouss et mon mot de passe
dominerlemonde, le fichier ressemblera à ça :
Citation : /var/svn/sdz/conf/passwd[users]
miaouss = dominerlemonde
Si je veux rajouter un ou plusieurs utilisateurs, le fichier aura alors cette tête :
Citation : /var/svn/sdz/conf/passwd[users]
miaouss = dominerlemonde
jessie = pourvousjouer
james = unmauvaistour
Notre serveur est maintenant fonctionnel !
Essayons !
Créons un dossier sur notre bureau et tentons d'extraire notre dépôt.
C'est fait !