====== TD Redmine ======
Chaque groupe utilisera la [[https://forge-iutinfo.unice.fr/projects/tps-omgl2|forge]].
- Chaque étudiant, s'il ne s'en encore jamais connecté à la forge, doit se connecter en utilisant son login et mot de passe de l'université.
- Ensuite les étudiants sont enregistrés par l'enseignant ou leurs camarades dans la forge.
Pour utiliser la forge, vous pouvez utiliser les informations ici : https://forge-iutinfo.unice.fr/.
La structuration attendue des rendus dans le //**dépôt**// sur la forge est la suivante :
* **src** contient les codes
* **uml** contient le projet vpp
===== Découverte de Redmine =====
La page d’accueil Redmine comporte entre autre en haut à gauche, les différents onglets suivants: Ma page, Projets, Aide
* L'onglet //Projets// vous permet de visualiser l'ensemble des projets dans lesquels vous êtes impliqués.
* L'onglet //Aide//:-x
* L'onglet //Ma page// vous permet d'avoir une version personnalisée et synthétique du contenu des projets que vous suivez. Vous pouvez la **spécialiser**.
{{ :2012_2013:lp:idse:gl:management:td:pageinitialeredmine.png?400 |}}
==== Exploration d'un projet ====
* Sélectionner le projet //LP MBF 2012//
* Vous pouvez visualiser
* toutes les "demandes" du projet (tickets)
* les sous-projets
* les membres impliqués dans le projet
{{ :2012_2013:lp:idse:gl:management:td:activitesredmine.png?200 |}}
* Les onglets vous permettent de
* visualiser les //activités// du projet (tickets, commits, ...)
* visualiser les //demandes// et créer des demandes
* visualiser le //diagramme de gant// et le calendrier associé au projet
* visualiser et rédiger des annonces
* stocker des documents et des fichiers
* partager un wiki
* gérer le dépôt
* configurer le système si vous êtes manager.
===== Gestion des demandes =====
{{ :2012_2013:lp:idse:gl:management:td:nouvelledemande.png?200 |}}
Lorsque vous créez une nouvelle demande vous devez choisir :
* **Tracker**: choisir dans le menu déroulant, en fonction de la tâche
* **Sujet**: donner un titre
* **Description**: bref résumé de la nouvelle tâche
* **Priorité**: si besoin
* **Assigné à**: choisir le responsable
* **Tâche parente**: s’il y a lieu (notre version ne dispose pas encore de cette option...)
* **Début**: date de début (sans cette information et la suivante la tâche n'apparaît pas dans le diagramme de Gantt
* **Echéance**: date de fin
*
==== Exercice ====
Chaque groupe de projet tutoré saisit
* une tâche correspondant à "Mise en place de l'environnement Redmine par sous-projet" qui commence et se termine aujourd'hui.
* une tâche correspondant à un livrable : "Cahier des charges détaillé", qui devra comprendre les use cases et un diagramme de classe de niveau domaine a minima, dans le sous-projet qui lui correspond, pour le 19/11
===== Gestion des heures =====
* Sélectionner la tâche sur laquelle vous venez de passer 1/2 heure (numéro)
* Sélectionner l'onglet ''saisir temps''
* Puis remplisser
===== Gant =====
Permet l’affichage d’un graphique de Gant montrant le projet avec les différentes tâches en fonction de filtres que vous pouvez adapter.
==== Exercice ====
Visualiser le diagramme de Gant actuel.
===== Utilisation du wiki =====
Dans le **wiki**, vous préciserez:
* Le nom des étudiants du groupe avec vos adresses email
* une présentation de votre projet
* les points qui vous semblent marquant au niveau du dépôt.
[[ http://www.redmine.org/projects/redmine/wiki/FrRedmineWiki|Si vous avez besoin de plus par la suite.]]
===== Utilisation du dépôt =====
([[http://dev.nozav.org/intro_svn.html#htoc8|plus d'informations ici]])
Un dépôt Subversion est l'emplacement central où sont stockées toutes les données relatives aux projets gérés. Le dépôt est accédé via une URL locale ou distante.
Le dépôt contient l'historique des versions des fichiers stockés, les logs enregistrés lors des modifications, les dates et auteurs de ces modifications, etc.
Un dépôt apparaît de l'extérieur comme un système de fichiers composé de répertoires au sein desquels on peut naviguer, lire et écrire selon les permissions accordées.
Chaque sous-projet sera décomposé dans le svn en
* Nom du sous-projet
* src (Il contiendra vos codes sources)
* spec (Il contiendra votre projet UML, les business process, ...)
-** Récupérer le contenu du projet qui se trouve dans le dépôt.**
* Placer vous sur votre machine dans le répertoire où vous désirez travailler.
* Récupérer le contenu du dépôt :
* ou bien //''svn checkout https://svn-iutinfo.unice.fr/svn/lp-mbf-2012''//
* ou bien en utilisant tortoise SVN, clique droit là où vous voulez créer un dossier qui correspondra à une "image" du dépôt, sélectionner "SVNCheckout" puis dans url du projet : https://svn-iutinfo.unice.fr/svn/lp-mbf-2012((Nom correspondant à l'identifiant sous //configuration// dans la forge, onglet //informations//)), ne rien modifier d'autre, puis laisser vous guider.
* un répertoire a été créé, ce sera votre copie de travail.
* Deux étudiants du groupe au moins font cette manipulation.
* A présent votre répertoire est connecté au dépôt.
* Pas besoin d'aller dans le fichier svn qui a été créé.
- **Travailler localement**((La copie de travail est un répertoire situé en local sur le poste de l'utilisateur et qui contient une copie d'une révision donnée des fichiers du dépôt. C'est cette copie qui sert de base de travail et qui est modifiée en local avant d'être exportée (sauvegardée) vers le dépôt.))
* Sous ce répertoire ''lp-mbf-2012'', créer un répertoire au nom de votre groupe, par exemple ''GestionRDV'' et les trois sous répertoires ''src'', ''spec'' et ''sandbox''.
* Sous le répertoire ''sandbox'', créer un fichier de contenu : "je suis la v0"
- **Sauvegarder votre travail dans le dépôt**
* avec TortoiseSVN, Clique droit, **SVN commit** (Pousser les modifications)
* Sélectionner les modifications que vous voulez enregistrer
* Dans message, expliquer ce que vous allez mémoriser (ex: création de la structure, modification du fichier xx, correction du bug yy)
* En ligne de commandes :
* Pour que vos nouveaux répertoires soient enregistrés dans le dépôt //svn add ''NomduRépertoire''//
* le répertoire et le fichier sont à présent sous le contrôle de version.
* Mémorisez les derniers changements : //svn commit -m "Commentaire de sauvegarde"//
* Vous pouvez constater la mise à jour du dépôt dans la forge directement, en sélectionnant ''dépôt'' ou par l'adresse ''https://forge-iutinfo.unice.fr/projects/lp-mbf-2012/repository''
- Pour **récupérer la dernière version** qui se trouve dans la forge : (Tirer vers soi les informations)
* L'étudiant 2 qui n'a pas créé le fichier précédent dans son répertoire, met à jour son répertoire
* avec Tortoise : Clique droit, **SVN update**
* en ligne de commande : //''svn update''// l'environnement est alors mis à jour.
- **Gestion de conflits**
* //Exercice ://
* L'étudiant 2 modifie le fichier (v1) , puis "commite la modification"
* L'étudiant 1 modifie le fichier (v2), puis tente le commit
* Il y a une erreur.
* Lorsque les parties modifiées sont différentes un update suffit en demandant le merge, plus généralement :
(e) edit - change merged file in an editor
(df) diff-full - show all changes made to merged file
(r) resolved - accept merged version of file
(dc) display-conflict - show all conflicts (ignoring merged version)
(mc) mine-conflict - accept my version for all conflicts (same)
(tc) theirs-conflict - accept their version for all conflicts (same)
(mf) mine-full - accept my version of entire file (even non-conflicts)
(tf) theirs-full - accept their version of entire file (same)
(p) postpone - mark the conflict to be resolved later
(l) launch - launch external tool to resolve conflict
(s) show all - show this list
* forcer la sauvegarde à correspondre à votre version (mf)
- **Revenir à une version antérieure**
* ''svn update -r 2 test.tex''
- Pour **associer un commit à une tâche et le nombre d'heure**
* ''svn commit -m "message (references # @h)"''
* ou bien ''svn commit -m "configuration de la forge (refs #NUMERO_TACHE @1h30m)"''
En savoir plus :
http://www.projet-plume.org/ressource/cours-de-gestion-de-configuration-avec-cvs-et-subversion
===== Avancer sur le projet tutoré =====
- Identification des cas d'utilisation et commencer à évaluer leur complexité.
- Analyse des risques
- Identification des diagrammes de classes de niveau métier.
- Choix des études techniques
Pour la semaine prochaine, charger http://www.bonitasoft.com/
===== Références =====
* http://coursinforev.org/dokuwiki/doku.php/redmine