Intro Projet FOO Gestion des sources Fin La banquise... La Banquise http://labanquise.insa-rouen.fr Sébtien Bonnegent, Administrateur système <sebtien.bonnegent@insa-rouen.fr> Qu'est ce que c'est? un ensemble d'outils d'aide au développement logiciel facilite le travail collaboratif utilisation du logiciel libre FusionForge 1 5 septembre 2011 Pourquoi ce nom? on trouve beaucoup de pingouins sur une banquise... 1. http ://fusionforge.org/ 5 septembre 2011 La Banquise 1 / 395 septembre 2011 La Banquise 2 / 39 La banquise... FusionForge : Qu'est ce que c'est?... Bref historique : lancement en mars 2005 début 2006 : 92 utilisateurs / 37 projets début 2007 : 181 utilisateurs / 66 projets novembre 2008 : nouvelle version ouverte à toute l'insa septembre 2009 : 220 utilisateurs / 152 projets septembre 2010 : 295 utilisateurs / 284 projets septembre 2011 : 380 utilisateurs / 455 projets Quelques exemples : FusionForge 2 INRIA 3 500 utilisateurs 10 projets 8859 utilisateurs 2334 projets 2. http ://fusionforge.org/ 3. http ://gforge.inria.fr/ 5 septembre 2011 La Banquise 3 / 395 septembre 2011 La Banquise 4 / 39
Principaux outils... Page d'accueil... forum (développeurs / utilisateurs) outil de suivi (bogue, patch,...) gestion / répartition des tâches gestion de la documentation gestion des sources et accès gestion de chiers (diusion des versions,...) À venir : wiki par projets listes de diusion 5 septembre 2011 La Banquise 5 / 395 septembre 2011 La Banquise 6 / 39 Première connexion... Liste de vos projets... Utilisation de votre identiant / mot de pse INSA 5 septembre 2011 La Banquise 7 / 395 septembre 2011 La Banquise 8 / 39
Création d'un projet... 1. Dénition et proposition du projet... 4 étapes importantes : 1. Dénition et proposition du projet 2. Validation par l'administrateur 3. Conguration du projet 4. Dénition des rôles Une seule limitation : taille maximale du dépot : 500Mo 5 septembre 2011 La Banquise 9 / 395 septembre 2011 La Banquise 10 / 39 1. Dénition et proposition du projet... 2. Validation par l'administrateur... Une fois la proposition reçue, l'administrateur : vérie les informations données veille au respect des règles de nommage avertissement par messagerie de l'acceptation ou du refus Le dépôt sera créé quelques dizaines de minutes plus tard. 5 septembre 2011 La Banquise 11 / 395 septembre 2011 La Banquise 12 / 39
3. Conguration du projet... 3. Conguration du projet... Accès aux sources : par défaut : accès anonyme fermé Pour pser en mode public : Sources => Administration cocher l'option Activer l'accès anonyme Arbre des projets : permet de retrouver des projets par thème 5 septembre 2011 La Banquise 13 / 395 septembre 2011 La Banquise 14 / 39 3. Conguration du projet... 4. Dénition des rôles... Utilisation des greons 5 septembre 2011 La Banquise 15 / 395 septembre 2011 La Banquise 16 / 39
4. Dénition des rôles... Gestion des sources : Intérêts... Contrainte : l'utilisateur doit exister sur la banquise : une première connexion est obligatoire Les rôles : il faut un Admin Senior Developer : peut utiliser le svn et administrer les parties Tâches / Documents / Forum et Suivi travail à plusieurs et en paralléle p de perte des modications possibilités de retour en arriére (toutes les versions sont conservées) Junior Developer : peut utiliser le svn note : tous les rôles sont modiables 5 septembre 2011 La Banquise 17 / 395 septembre 2011 La Banquise 18 / 39 Théorie... Les règles... Ce qui est très bien géré : les chiers textes : les codes sources (java, tex,...) note : les chiers eps ne sont p des binaires Ce qui n'est p géré correctement : les chiers binaires (doc, jpg,...) les chiers Dia sont compressés par défaut Ce qu'il ne faut absolument p mettre : les chiers générés / compilés une copie du dépot ou d'une partie! des noms de répertoire ou de chier avec des accents 5 septembre 2011 La Banquise 19 / 395 septembre 2011 La Banquise 20 / 39
Utilisation d'une be locale... Import initial... Si vous voulez utiliser une be locale : > svnadmin create /mon/depot Pour accéder au dépot, remplacer https://labanquise.insa-rouen.fr/svn/foo par file:///mon/depot/mon_nom_de_projet 1. svn checkout username toto https ://labanquise.insa-rouen.fr/svn/foo/ le_nom_local 2. cd le_nom_local 3. si des sources existent, on les copie dans le répertoire trunk 4. svn add trunk/* 5. svn commit -m 'Version initiale' 5 septembre 2011 La Banquise 21 / 395 septembre 2011 La Banquise 22 / 39 Précision sur l'arborescence... Subversion : le cycle standard... trunk la branche de développement par défaut. tags étiquette en lecture seule (ex : 2.6.20 / 0.4). Si une modication doit être apportée alors il faut créer une nouvelle étiquette. branches branches de développement parallèle à la branche par défaut (à garder pour des développements spéciques). Subversion utilise les répertoires.svn pour retrouver ses petits. (svn export) 5 septembre 2011 La Banquise 23 / 395 septembre 2011 La Banquise 24 / 39
Pour le développeur... Pour le développeur... 1. svn checkout username toto https ://banquisei.insa-rouen.fr/svn/foo/ le_projet 4 2. cd le_projet/trunk 3. modication des sources 4. svn update 5. svn status 6. svn commit -m 'Ajout de la fonction foo' Avant de "commiter", il faut : 1. avoir ni une opération unitaire (une correction de bug, une fonction,...) 2. au minimum avoir testé la compilation du projet Le but étant de ne p bloquer les autres développeurs. La variable EDITOR identie votre éditeur préféré. (Exemple : EDITOR=vim dans votre.bh_prole) 4. seulement la 1er fois 5 septembre 2011 La Banquise 25 / 395 septembre 2011 La Banquise 26 / 39 Exemple de sortie d'une version... Exemple de sortie d'une version... Création d'un tag 1. svn copy trunk tags/foo-1.0 2. svn commit -m 'Sortie de la v1' 1. cd tags 2. tar cjf foo-1.0.tar.bz2 exclude.svn foo-1.0 3. ajout dans la partie Fichiers de la banquise 5 septembre 2011 La Banquise 27 / 395 septembre 2011 La Banquise 28 / 39
Les branches... Modication d'une branche 1. svn checkout username toto https ://labanquise.insa-rouen.fr/svn/foo/branches/v.initiale 2. cd v.initiale 3. modication des sources 4. svn update 5. svn commit -m 'Correction bug 1321' Les conits pendant un commit... Dans quel c? modication d'une même zone d'un chier par plusieurs développeurs $ svn update U README G TODO D NEWS C ChangeLog U main.c Updated to revision 42. $ svn commit -m 'Feature 463' svn: Commit failed (details follow): svn:abording commit: 'ChangeLog' remains in conflict 5 septembre 2011 La Banquise 29 / 395 septembre 2011 La Banquise 30 / 39 Les conits... Les conits... Les principaux symboles : A ajout du chier C conit non résolu D eacement du chier G conit résolu U mise à jour du chier? élément non géré dans le dépot Création de 3 chiers par SVN : ChangeLog.r40 : ma version avant modication ChangeLog.mine ma version ChangeLog.r42 la dernière version dans le dépot ChangeLog est modié truc bidule... machin... <<<<<<.mine pomme poire ====== orange banane >>>>>>.r42 etc... la fin de fichier 5 septembre 2011 La Banquise 31 / 395 septembre 2011 La Banquise 32 / 39
Résolution... Les révisions... Un exemple 1. svn update 2. identication du problème 3. résolution avec le ou les développeurs 4. modication du chier ChangeLog 5. svn resolved ChangeLog 6. svn commit Révision 1: Belle Introduction Révision 2: Belle Introduction Commentaires p terrible Pour avoir la liste des dernières révisions : 1. svn update 2. svn log 5 septembre 2011 La Banquise 33 / 395 septembre 2011 La Banquise 34 / 39 Les révisions... LaTeX... Pour revenir à la réversion 1 : svn update -r 1 foo.tex Des tags peuvent être directement gérés par Subversion. svn ci foo.tex Revision : le numéro de révision Pour voir les diérences entre la révision 2 et 1 : svn di -r 2 :1 foo.tex Date : la date de la dernière révision Id : les informations ci-dessus Attention : sans paramètre, la commande s'applique à tout le repertoire courant et ses sous répertoires Sous Debian/Ubuntu : sudo apt-get install latex-svninfo 5 septembre 2011 La Banquise 35 / 395 septembre 2011 La Banquise 36 / 39
LaTeX... Pour nir sur SVN... Un exemple avec LaTeX \documentcls[a4paper, 12pt]{article} % on charge svninfo avec l'option today pour avoir la date de revision % plutot que la date du jour ( pour \today et \maketitle) \usepackage[today]{svninfo} \usepackage[latin1]{inputenc} \usepackage[t1]{fontenc} \usepackage[french]{babel} % on recupere les infos \svninfo $Id$ Quelques exemples d'interface graphique : linux kdesvn linux rapidsvn macos svnx windows TortoiseSVN \title{utilisation de svninfo} \begin{document} \maketitle Numero de la revision \svninforevision \\ Date de la revision \svninfodate \\ Nom du fichier \svninfofile \\ \end{document} Où trouver de la documentation? "Gestion de projets avec Subversion" à la bibliothéque http ://svnbook.red-bean.com $ svn propset svn:keywords 'Id' foo.tex $ svn propdel svn:keywords 'Id' foo.tex 5 septembre 2011 La Banquise 37 / 395 septembre 2011 La Banquise 38 / 39 Intro Projet FOO Gestion des sources Fin Des questions? [ http ://labanquise.insa-rouen.fr/ ] 5 septembre 2011 La Banquise 39 / 39