Subversion : installation CentOS - BlueOnyx
De wikiGite
Installation - configuration
Subversion et mod_dav_svn sont déjà installés sur BlueOnyx. Sinon, les installer par
yum install mod_dav_svn subversion
Créer un virtualhost pour Subversion. Créer dans le répertoire de ce vitualhost un répertoire "svn" (si possible ailleurs que dans le répertoire DocumentRoot du virtualhost, pour ne pas mélanger). Exemple :
cd /home/.sites/33/site5 mkdir svn
Editer le fichier /etc/httpd/conf.d/subversion.conf. Il doit ressembler à ça :
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos/> DAV svn SVNParentPath /home/.sites/33/site5/svn/ # Require SSL connection for password protection. # SSLRequireSSL AuthType Basic AuthName "Subversion repository" AuthUserFile /home/.sites/33/site5/svn/htpasswd AuthzSVNAccessFile /home/.sites/33/site5/svn/acls Require valid-user # Limit write permission to list of valid users. #<LimitExcept GET PROPFIND OPTIONS REPORT> #</LimitExcept> </Location>
On ne s'occupera pas du SSL ici, mais on peut sécuriser les dépôts SVN en activant la directive SSLRequire.
La sécurité est assuré par l'authentification des utilisateurs. Elle s'effectue à 2 niveaux :
- Apache authentifie l'utilisateur (login/mot de passe)
- SVN donne des autorisations à l'utilisateur (lecture et/ou écriture sur les différents dépôts)
Pour l'authentification, créer un fichier de mots de passe par
htpasswd -c /home/.sites/33/site5/svn/htpasswd user1
Par la suite, l'ajout d'autres utilisateurs se fera par
htpasswd -m /home/.sites/33/site5/svn/htpasswd user2
Créer ensuite le fichier des autorisations. Modèle :
# SVN ACL access file [groups] # harry_and_sally = harry,sally # Autorisations globales pour tous les dépôts [/] user1 = rw user2 = r # Group permissions : # @harry_and_sally = rw # Decommenter ci-dessous pour autoriser tout le monde a voir le dépôts # * = r # Autorisations specifiques à certains dépôts # [nom_du_depot:/] # user3 = r # * = r
Utilisation
Création d'un projet
svnadmin create /home/.sites/33/site5/svn/projettest
Pour éviter les problèmes de droits, changer le propriétaire des fichiers créés par svnadmin
chown -R apache /home/.sites/33/site5/svn/projettest
Pour importer les premiers fichiers à partir d'une arborescence locale d'un poste de travail
svn import /tmp/projettest/ http://<URL_DU_VIRTUALHOST>/repos/projettest -m "Projet test initial" --username user1
Par la suite, la mise à jour du poste local à partir du serveur se fait par :
svn co http://<URL_DU_VIRTUALHOST>/repos/projettest projettest --username user1
Et l'envoi de modifications du poste vers le serveur se fait par
- Mise à jour de fichiers modifiés
svn commit ./projettest --username user1
- Ajout d'un nouveau fichier
svn add ./projettest/main/file2.php
La validation du nouveau fichier se fait par la même commande "svn commit..." que ci-dessus.