Documents Structurés

Site réalisé dans le cadre du cours de Documents Structurés par Kelly MASCLEF et Julie SAUVAGE.

Visiter le site

Projet Encadré 1

Programmation et Projet Encadré 1 du Semestre 1 par Kelly MASCLEF et Julie SAUVAGE (et avec Julie BELIAO).

Visiter le site

Projet Encadré 1

Programmation et Projet Encadré 1 du Semestre 1 par Ilaria TIDDI (avec Marcelo MATOSO et Camille DOUDANE).

Visiter le site

TAL

L5T53 / L5T55 (BASH/Emacs/Python) par Kelly MASCLEF

Visiter le site

Environnement-TAL

L5T53 / L5T55 (BASH/Emacs/Python) par Julie SAUVAGE

Visiter le site

Programmation pour le TAL avec PERL

L6T54 / L6T55 (PERL) par Julie SAUVAGE

Visiter le site

Bienvenue chez Perl

L6T54 / L6T55 (PERL) par Kelly MASCLEF

Visiter le site

Organisation du travail

Travailler en groupe n'est pas toujours tâche aisée. Nous avons pû répartir les tâches équitablement en se servant des qualités de chacune. Néanmoins, il nous a bien fallu accorder nos violons et mettre en commun tout notre travail!

Alors que l'année passée nous faisions d'habiles échanges de clef USB (on fait ce qu'on peut avec ce qu'on a) pour récupérer le travail d'untel ou d'untel, nous avons décidé cette année d'innover un peu et d'expliquer notre méthode de travail.

Le trafic de fichiers

Le trafic de clefs USB tue! Qui n'a pas écrasé par erreur le fichier créé par son collègue, l'obligeant à recommencer son dur labeur, en récupérant ou en transférant des données dans une clef USB (ou par mail)? Ou alors peut-être ne sommes-nous pas toujours très dégourdies…

Quoiqu'il en soit, cette année nous avons renoncé à cette méthode de travail très approximative et dangereuse qui nécessite un contact direct avec le partenaire de travail, pour découvrir les joies du travail avec SVN.

SVN, c'est chouette!!

Peut-être que nous n'utilisons pas cette méthode correctement ou comme de vraies pros, néanmoins elle nous a été profitable!

Mais SVN c'est quoi? Il s'agit en fait d'un système de gestion de versions, c'est-à-dire un logiciel qui permet de stocker un ensemble de fichiers en conservant la chronologie de toutes les modifications qui ont été effectuées dessus afin de pouvoir faire des différentiels. Il permet donc de retrouver les différentes versions d'un lot de fichiers connexes. Ainsi, nous pouvons voir dans la figure suivante qu'une ligne a été changée dans notre fichier de style (affichage via googlecode):

Alors tout d'abord il faut installer un package Subversion sur votre machine, pour mac on pourra récupérer l'image disque à cette adresse , les utilisateurs de Windows pourront télécharger l'excellent TortoiseSVN qui propose une interface graphique très facile d'utilisation. Ensuite, il faudra créer un compte dans un site permettant d'héberger votre projet avec vos codes & cie comme GoogleCode (celui que nous avons choisi pour sa facilité d'utilisation) ou encore SourceForge (mais il en existe bien d'autres comme BeanTalk ou StackOverFlow).

Il faut ensuite commencer par créer une copie locale des fichiers sur lesquels on va travailler. Pour cela, on utilise la commande checkout pour récupérer une copie des fichiers présents sur le serveur sur notre machine:

MmeJe-sais-tout@projet2 /projet-encadre2/
$ svn checkout urlFichier --username

Cette opération rapatriera tous les fichier dans notre machine. Sous TortoiseSVN, il suffit de créer un répertoire, puis de faire un clic-droit dessus et de choisir "checkout" où on spécifiera le nom d'utilisateur voire le mot de passe.

Voilà le plus dur est fait! Maintenant nous pouvons travailler en récupérant nos fichiers via le serveur choisi (GoogleCode dans notre cas) sans avoir à demander à qui que ce soit d'envoyer tel ou tel fichier!

Bien sûr, lorsqu'on commence le travail, il faut bien vérifier que personne n'ait rien changé ou rapatrié les fichiers modifiés pendant notre absence, on fait cela avec la commande update:

MmeJe-sais-tout@projet2 /projet-encadre2/
$ svn update
At revision 13.

Un fois de plus, sur TortoiseSVN il suffit de cliquer-droit sur le répertoire de travail et de choisir "update".

Si aucun fichier n'a été changé, seul le numéro de la révision apparaîtra. Mais si il y a eu des changements, on a alors une liste des changements effectués:

MmeJe-sais-tout@projet2 /projet-encadre2/
$ svn update
U trunk/bao1.pl
D site/index_test.html
A wiki/utilisationCSS.wiki
Updated to revision 14.

Où le U signifie une mise à jour, le A un ajout et le D une suppression. On peut aussi ajouter ou supprimer des fichiers du serveur: sur TortoiseSVN il suffit d'ajouter ou de supprimer le fichier concerné au répertoire

En ligne de commande il suffit d'utiliser les commandes add et delete:

MmeJe-sais-tout@projet2 /projet-encadre2/
$ svn add svn/trunk/scriptEnCours.pl
A (bin) svn/trunk/scriptEnCours.pl
MmeJe-sais-tout@projet2 /projet-encadre2/
$ svn delete svn/trunk/scriptEnPanne.pl
D svn/trunk/scriptEnPanne.pl

Enfin, il suffit d'envoyer toutes les mises à jour effectuées via la commande commit: sous TortoiseSVN il suffit de cliquer-droit sur le répertoire et de choisir "commit"

En ligne de commande on fait comme ci-dessous:

MmeJe-sais-tout@projet2 /projet-encadre2/
$ svn commit -m "ajout de deux fichiers + suppression d'un wiki"
Adding site/page2.html
Adding site/page2.html
Deleting wiki/scriptEnPanne.wiki
Transmitting file data .......
Committed revision 28.

Cette commande effacera sur le serveur les fichiers effacés, mettra à jour les fichiers modifiés et ajoutera tous vos fichiers ajoutés.

Voilà! Nous savons maintenant comment travailler avec SVN!! Bien sûr, nous pouvons aussi accéder à nos fichiers via notre espace dans GooleCode mais c'est tout de même plus pratique de pouvoir créer, modifier des fichiers, créer des wikis, ajouter des commentaires, etc… sans avoir à se connecter!

NB: Il est toujours utile d'afficher les logs lors des updates afin de savoir ce que nos collègues ont fait pendant que nous nous prélassions!

Cette explication est la même que celle du site de Documents Structurés de Kelly Masclef et Julie Sauvage