Subversion

From Proj3ctWiki
Jump to: navigation, search

Contents

Configuration de Subversion (sur Fedora Core 6)

Une config simple rapide à mettre en oeuvre pour tester rapidement subversion. On ne portera pas plus attention aux problèmes de sécurité. C'est principalement pour des tests en interne. J'ai fait le choix de ne créer qu'un seul repository pour contenir plusieurs projets. Une fois qu'on en a un...


Création du répertoire qui va contenir nos repository :

user@host$ mkdir /data/repository

Création d'un repository :

user@host$ svnadmin create --fs-type fsfs projects

Configuration d'Apache

Installer mod_dav_svn si ce n'est pas fait :

user@host$ yum install mod_dav_svn

Configurer l'accés au projet :

user@host$ vi /etc/httpd/conf.d/subversion.conf

Contenu du fichier :

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /projects>
  DAV svn
  SVNPath /data/repository/projects
  AuthType Basic
  AuthName "Proj3ct repository"
  AuthUserFile /data/repository/projects/conf/http_passwd
  Require valid-user
</Location>

Alternative :

<Location /projects>
  DAV svn
  SVNPath /data/repository/projects
  # Limit write permission to list of valid users.

  <Limit GET POST PROPFIND OPTIONS REPORT>
     # Require SSL connection for password protection.
     # SSLRequireSSL

     AuthType Basic
     AuthName "Authorization Realm"
     AuthUserFile /data/repository/projects/conf/http_passwd
     Require valid-user
  </Limit>
</Location>

(Voir aussi la directive LimitExcept d'Apache.)

Note : Il existe également la directive SVNParentPath. Auquel cas il faut préciser le répertoire parent du repository. Ne pas oublier de redémarrer Apache.

Création des mots de passe pour Apache

user@host$ htpasswd -n username > /data/repository/projects/conf/http_passwd

Import d'un projet dans notre repository

Voici une structure couramment adoptée pour l'organisation des sources :

ProjectName/
|-- branches
|-- tags
`-- trunk

Commande d'import :

user@host$ svn import ProjectName file:///data/repository/projects/ProjectName -m 'initial import'

Vérifions :

user@host$ svn list file:///data/repository/projects/

On peut désormais récupérer les sources en utilisant le protocol Http.

http://localhost/projects

Ecriture dans le repository

Comme nous utilisons le mod web_dav c'est Apache qui effectue les opérations d'écriture, il faut donc lui donner les droits d'écriture dans repository (db, dav, locks...)

user@host$ chown -R apache:apache dirname

Récupérer les sources

Voila la commande pour récupérer le trunk de ProjectName par exemple :

user@host$ svn co http://localhost/projects/ProjectName/trunk/

Enjoy !

Subversion over SSH

Accéder aux sources via ssh :

svn+ssh://[login]@my.domain.tld/full/path/to/repository
Personal tools