Comme il ne sert à rien de ré-écrire ce qui l'a déja été, j'ai trouvé un post assez interressant pour installer un serveur SVN. Le tout est
ici
Update Comme le site est maintenant hors ligne, j'ai copier le contenu ici grace à
wayback machine
Pour ceux qui ne connaissent pas encore, Subversion est un outil open source de contrôle de versions. En d'autres termes, il vous permet de mettre en place un serveur de stockage qui garde en mémoire toutes les versions successives de vos fichiers. Ainsi, vous pourrez à tout moment revenir à une ancienne version de votre code, ou visualiser l'historique des modifications apportées. Ce système est bien sûr très intéressant lorsque l'on travaille en équipe : chacun peut récupérer une copie du code en local, travailler dessus, et mettre à jour le code sur le serveur. Le système prendra soin de résoudre les conflits possibles : imaginez que 2 développeurs travaillent sur leur version locale d'un même fichier. L'un deux met à jour le fichier en question sur le serveur (avec ses modifications). Quand l'autre développeur souhaitera mettre à jour le fichier sur le serveur, le système lui proposera de "mélanger" ses modifications avec celles du premier développeur.
Tout d'abord, installez les paquetages nécessaires : (Apache 2 étant déjà installé)
apt-get install subversion
apt-get install libapache2-svn
Supposons que vous souhaitez placer votre repository dans /home/[username] et le nommer dev. Vous devez placer ceci dans /etc/apache2/apache2.conf :
<Location /dev>
DAV svn
SVNPath /home/[username]/dev
AuthType Basic
AuthName "Documentation Team Repository"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
Redémarrez Apache :
/etc/init.d/apache2 force-reload
Créez le repository :
svnadmin create /home/[username]/dev
Créez un fichier de mot de passe :
htpasswd2 -c /etc/subversion/passwd [username]
Donnez les droits d'accès au repository à Apache :
chown -R www-data.www-data /home/[username]/dev
Normalement vous devriez pouvoir accéder au repository dans un navigateur : http://[servername]/dev
Vous devez maintenant créer une structure de dossiers pour votre projet. Fréquemment, un projet de développement peut se retrouver scindé en plusieurs branches. En effet, si vous souhaitez remodeler en profondeur un projet tout en laissant la possibilité à d'autres développeurs de continuer à débugguer une version stable existante, vous devez créez une nouvelle branche avec laquelle travailler. Ces branches seront donc stockées dans un dossier "branches" tandis que la version principale du code en cours de développement sera placées dans un dossier "trunk".
Un autre concept à connaître est celui des tags : l'inconvénient du versioning, c'est que les numéros de révision ne sont pas toujours très parlants : difficile de se souvenir que la révision 4822 est en fait la version 1.2 du logiciel. Les tags sont donc des instantanés du projet à un moment donné, ce qui permet de leur attribuer un nom plus user-friendly. Un dossier "tags" est donc nécessaire dans votre structure.
Voici donc l'arborescence que vous devez créer :
/project/branches/
/project/tags/
/projet/trunk/
file1.php
file2.php
...
Ceci fait, vous devez importer la structure dans le repository. Si vous avez créé votre structure dans /home/[username] :
svn import /home/[username]/project http://[servername]/dev -m "initial import"
j'ai détaillé la procédure d'installation d'un serveur Subversion sous Ubuntu. L'exemple que j'avais donné n'est toutefois valable que pour un seul dépôt (repository), et donc un seul projet. Comme il est rare pour un développeur de travailler sur un seul projet à la fois, voici quelques indications pour créer plusieurs dépôts sur un même serveur.
Nous supposerons que le serveur est installé et que vous souhaitez placer vos dépôts dans un dossier /var/svn (que vous aurez préalablement créé). Pour chaque dépôt, voici la procédure à suivre :
sudo svnadmin create /var/svn/project
sudo chown -R www-data.www-data /var/svn/project
sudo svn import /path/to/your/project http://[server_name]/svn/project -m "initial import"
Vous devez également modifier votre /etc/apache2/apache2.conf :
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Documentation Team Repository"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
Il ne vous reste plus qu'à redémarrer Apache !