====== 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 à [[http://tortoisesvn.net/downloads|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 : * [[http://fr.wikipedia.org/wiki/Subversion_%28logiciel%29|http://fr.wikipedia.org/wiki/Subversion_%28logiciel%29]] * [[http://dev.nozav.org/intro_svn.html|http://dev.nozav.org/intro_svn.html]] ===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é.