Subversion

Principes

SVN est un outil de gestion de versions de fichiers. Plus clairement dit, il permet de stocker de manière organisée un ensemble de fichiers, de mettre à jour ces fichiers et de récupérer les différentes versions de ces fichiers. Il gère les accès de manière sécurisée, donnant à chaque utilisateur défini des droits précis.

Dans le cadre du projet Landes Eternelles, son plus grand avantage est d’offrir la possibilité aux responsables de l’équipe de faire partager des fichiers et de travailler dessus à plusieurs, qu’il s’agisse de fichiers de code source, de fichiers graphiques,…

Subdivision

Le SVN client regroupe tout ce qui est nécessaire pour le client, tant les fichiers source que les fichiers de données. Il est en fait divisé en plusieurs parties : le code source du client lui-même, le code source de l’éditeur de cartes, les données du client.

Client SVN pour Windows

Pour pouvoir utiliser le SVN, le plus aisé, en particulier pour ceux qui utilisent Windows, est d’employer un client SVN, c’est à dire un petit programme que vous installez sur votre machine, qui vous permettra de gérer le SVN.

L’outil que je recommande pour Windows, que j’utilise et que je vais expliquer, est Tortoise.

Vous pouvez le télécharger à cette adresse (le premier lien suffit). Installez-le ensuite en suivant les instructions, qui n’ont rien de très particulier. Redémarrez ensuite la bête. Vous remarquerez que c’est bien installez, si en cliquant droit sur un fichier au hasard, vous avez, dans le menu qui apparaît, “Tortoise SVN” indiqué.

Checkout

La première chose à faire, c’est un “checkout”. Cette opération permet d’obtenir l’un des trois SVN en local sur votre machine : obtenir en fait la dernière version de tous les fichiers d’un des trois SVN.

Pour ce faire, cliquez droit n’importe où, sur votre bureau par exemple, et dans le menu déroulant, choisissez “SVN Checkout”.

Une fenêtre s’ouvre et vous demande d’indiquer deux choses :

  • Le SVN que vous voulez obtenir et son adresse (“URL of repository”)
    • Pour le SVN client, indiquez svn://jeu.landes-eternelles.com:/NouveauClient
  • L’endroit où vous voulez que ça se trouve (“Checkout directory”)

Je vous conseille de créer un dossier particulier pour ça, car l’opération va créer, à l’endroit que vous choisissez, plusieurs dossiers.

Après avoir précisé ces deux choses, cliquez sur “Ok”. On va alors vous demander d’introduire votre login (anonyme) et mot de passe (anonyme), ce que vous faites docilement. L’opération se déroule alors tranquillement.

Update

La fonctionnalité du SVN que vous utiliserez le plus souvent (et que vous devez utiliser le plus souvent) est l’update. Cette opération permet d’actualiser la version du SVN que vous avez sur votre machine, avec la dernière version qui est sur le serveur.

Par exemple, si vous venez de faire un checkout et que deux jours après, l’un des membres de l’équipe change un fichier, la seule façon que vous avez de récupérer ce fichier changer, est d’effectuer un update. Ce que vous avez sur votre machine est synchronisé avec la dernière version. Cette opération correspond en fait à un download de fichiers à partir du serveur.

Pour ce faire, cliquez droit sur un fichier ou un dossier (je vous recommande de cliquer droit sur le dossier Trunk comme ça vous mettez tout à jour), et choisissez dans le menu “SVN update”. On vous demande alors votre login et mot de passe, vous l’indiquez et l’opération se fera toute seule, listant les fichiers qui ont changé ou vous disant que rien n’a été modifié.

A chaque fois que vous comptez modifier un fichier du SVN, je vous recommande de faire un update, pour être sûr que vous travaillez sur la dernière version.

Commit

Avec l’accès anonyme, il n’est pas possible de faire un commit, l’accès n’est qu’en lecture

Autres fonctionnalités

Le SVN permet toute une autre série de fonctionnalités, qu’il n’est pas utile de mettre par écrit. Je les ajouterai si jamais elles ont du succès et de l’utilité. Le SVN permet de récupérer des fichiers d’une ancienne version, de voire l’histoire des versions avec vos messages de commit,…

Signalez vos questions ou suggestions d’ajout à la suite de ce post it, je le modifierai en conséquence si nécessaire.

Clients SVN sous Linux

Alternatives

En ligne de commande, c’est donc subversion : aussi simple à utiliser que cvs.

Pour KDE : C’est eSVN Il existe 2 autres projets KDE : kdesvn et ksvn, ce dernier étant conçu comme tortoise (intégration). J’ai noté que ces 2 programmes ne font pas partie des paquets gentoo, et ksvn de la debian stable …

Pour Gnome : Rapidsvn, c’est le seul que j’ai trouvé. Il n’y a pas de module d’intégration pour nautilus, pour faire comme tortoise. A noter que les commentaires sur ce programme (sur le net) ne sont pas engageants.

Tutoriel

Voici un tutoriel rapide pour la ligne de commande pour la partie “Client”. Pour débuter voici 2 petites liens qui expliquent pas mal les choses :

Checkout

Pour faire le checkout obligatoire pour le début :

svn co svn://jeu.landes-eternelles.com:/NouveauClient

Cela va créer un répertoire NouveauClient avec une copie du SVN sur votre PC. Le login est “anonyme” et le mot de passe est “anonyme”.

Update

Si vous désirez mettre à jour votre copie locale, il faut taper :

svn update

Les fichiers modifiés vont être copiés sur votre PC et vous aurez donc la dernière version.

Remarques diverses

Sauts de lignes incohérents

Si vous avez des messages lorsque vous publiez vos modifications sur le serveur du type “sauts de lignes incohérents”, cela est en rapport avec la gestion du saut de ligne qui sont différents sous windows et linux.

Il faut donc que votre logiciel soit capable de gérer les 2 types de saut de ligne, car c’est le saut de ligne type “linux” qui est utilisé.