Cette page explique comment installer un serveur Subversion sur Ubuntu 11.10.
$ sudo apt-get update
$ sudo apt-get install subversion
$ sudo apt-get install apache2 libapache2-svn
Dans le fichier suivant, les lignes indiquées sont présentes, mais elles sont commentées. Il suffit de les décommenter et de modifier la ligne au besoin.
/etc/apache2/mods-enabled/dav_svn.conf
: <Location /svn> DAV svn SVNParentPath /var/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /var/svn/passwd </Location>
Un dépôt est un repository.
$ sudo mkdir /var/svn $ sudo chown www-data /var/svn
$ sudo htpasswd -c /var/svn/passwd user1 $ sudo htpasswd /var/svn/passwd user2 $ sudo htpasswd /var/svn/passwd usern
Le paramètre -c
est nécessaire qu'une fois, à la création du fichier de mot de passes. Changez et répétez la commande autant de fois qu'il y a des utilisateurs à ajouter en modifiant user1
, user2
, usern
par des noms correspondants.
$ sudo chown www-data /var/svn/passwd
repository
peut être différente) $ cd /var/svn $ sudo mkdir repository
/var/svn$ sudo svnadmin create repository /var/svn$ sudo chown -R www-data:www-data /var/svn/*
La partie repository
doit être la même qu'à l'étape 4.
$ sudo service apache2 restart
Définir des permissions d'utilisateurs, pour les utilisateurs SVN, permet de créer des groupes d'utilisateurs et de donner des accès à différents projets selon le groupe. Exemple, un groupe web_team
aura plein accès sur le projet de site web et le groupe developers
aura plein accès sur le projet d'un logiciel quelconque. On peut donner des accès en lecture, en écriture, ou les deux.
/etc/apache2/mods-enabled/dav_svn.conf
pour inclure la sécurité en décommentant la ligne AuthzSVNAccessFile /etc/apache2/dav_svn.authz
./etc/apache2/dav_svn.authz
en incluant les groupes et les permissions des utilisateurs. Le contenu du fichier peut ressembler à ceci : [groups] admins = john, luke project_managers = jessie work_team = karl, eric, john, steve clients = elie [/] admins = rw * = r [/project1] admins = rw project_managers = rw work_team = rw * = r [/clients] admins = rw work_team = r clients = rw
$ openssl genrsa -des3 -out server.key 1024 $ openssl rsa -in server.key -out server.key.insecure $ mv server.key server.key.secure $ mv server.key.insecure server.key $ openssl req -new -key server.key -out server.csr $ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
$ sudo cp server.crt /etc/ssl/certs $ sudo cp server.key /etc/ssl/private
server
concernant la création du certificat dans le répertoire courant.$ sudo a2ensite default-ssl
/etc/apache2/sites-available/default-ssl
: <Location /svn> DAV svn SVNPath /var/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /var/svn/passwd Require valid-user </Location>
<Location /svn></Location>
peut être commentée dans fichier /etc/apache2/mods-enabled/dav_svn.conf
si ce dernier a été décommenté auparavant.
Redémarrer Apache ($ sudo /etc/init.d/apache2 restart
) si nécessaire.
Commit failed (details follow): access to '/svn/repository/!svn/act/c09cbbdc-e0c3-4bad-97bc-88a25c462c31' forbidden
Effacer les répertoires .svn
:
find ./ -name ".svn" | xargs rm -Rf
Aussi pour Mac :
find ./ -name ".DStore" | xargs rm -Rf