Eclipse et le CVS
Bon voici un tutoriel en bonne et dûe forme ... Je suppose qu'il y en a d'autres sur le net mais bon ... Ca me fait plaisir et ça aura le mérite de vous faire découvrire comment ça marche ...
Si vous ne connaissez pas le CVS (si en plus vous développez c'est vraiment domage ...) vous n'avez sans doute pas besoin de ce tuto ...
Je suis sous Eclipse 3.1, la version en téléchargement actuellement donc en ce qui concerne le versionning j'ai strictement rien rajouté ... C'est dans Eclipse !!!
Commençons par le début. Si vous développez avec Eclipse (sinon je vous y encourrage :)), vous savez peut être comment on fait sinon je vous montre :
Déja pourquoi CVS et pourquoi Eclipse
Pourquoi CVS la question est largement abordée a travers le web, mais essentiellement parce que c'est le serveur qui gère vos sources de fichier ... plus jamais de backup (ou seulement celui du dépot), plus jamais de dossier partout avec la date a laquelle vous avez fait le backup, plus jamais de "zut j'ai supprimé le fichier la ..."... personnellement ça apporte déja pas mal mais tout l'intéret réside dans le développement en groupe ou la CVS sait gérer les modifications concurentes d'un même fichier, le développement en parrallèle de plusieurs branches du même projet ... Bref renseignez vous c'est vraiment un outil de développement assez intéressant ...
Pourquoi Eclipse ?? Un environnement pour tous les langages, performant et gratuit ... Trop rien a dire de plus si ce n'est qu'on peut tout faire avec y compris CVS, d'ou mon billet :)
Ajouter les vues nécéssaires
On va commencer a tunner Eclipse pour le rendre plus enclin a gérer le CVS.
Ne pas confondre vue et perspective ... Une perspective est un ensemble de vue associées de façon à décrire l'environnement dans lequel vous développez ... Si vous disposez d'un écran en 1024x768 je vous suggère grandement de créer une perspective pour le CVS ou de tout plugger en miniature dans un coin. Sinon vous aurez plus de place pour le code ...
Nous allons ajouter les vues de synchronisation et de repositories comme ceci :

La on ouvre la boite suivante :

La vue Repositories nous permettra de gérer les serveur CVS, on s'en sert pas tous les jours, a part si vous avez un max de projet ou un certain nombre de branches différentes enfin... je la garde toujours sous le coude ... Synchronisation c'est la vue la plus importante vous verrez plus tard ...
Ajouter un repository
Un repository est un dépot contenant les sources ... C'est la base du CVS en gros... On va ajouter un dépot de cette manière (j'explique avec des images pour bien que vous vous rendiez compte de la simplicité d'utilisation)

Puis on entre les diverses informations demandées

Une fois fini on clique sur finish et on voit la procédure d'authentification en cours et une ligne s'ajoute dans notre vue des repositories ... Comme vous pouvez le voir dans mon screenshot j'ai fait une erreur dans le host et il vous le dit il suffit de corriger et ça fonctionne ... heureusement en fait ... :)
Bon ensuite quoi ? Ensuite on va visiter le repository ... Cette fonctionalitée est excellente parcequ'on peu récupérer ce qu'on veut ... En ligne de commande j'ai pas trouvé les commandes qui correspondent a ce que Eclipse fait, et de toute façon ce serait largement moins ergonomique que ça ...

Ne vous inquiétez pas, ASP n'est qu'un projet de transcription de site ASP vers PHP ;) Sinon pour récupérer un projet faites click droit sur un dossier (celui que vous voulez) et check out as puis on vous demande :

Vous pouvez choisir de mettre votre projet dans un nouveau projet eclipse, un projet existant, ou créer un nouveau projet avec le wizzard (la je peux pas parce qu'il y a un .project dans le cvsrepository ... quelle connerie mais je vais l'enlever promis ;)). Puis a un moment on vous demande quelle branche vous voulez ... La branche HEAD étant le tronc correspond a la version principale du projet... Prenez la branche qui vous convient (si elle n'apparait pas faites refresh tags, ou allez voir dans configure tags), vous pouvez spécifier une date, c'est a dire récupérer le projet tel qu'il était a une certaine date.
Une fois ceci fait votre projet apparait dans la vue du navigateur (ou celle que vous utilisez pour votre projet ClassExplorer PhpExplorer ou autre ...) avec pour chaque fichier, sa version, son type et son état (modifié, ajouté ...) Tout ceci est configurable bien évidemment :

Mettre un projet existant dans CVS
Vous devez déja avoir ajouté un repository pour ceci ... Mais l'opération est grosso modo aussi simple que tout ce qu'on a déja fait ... Vous avez votre projet, il suffit de faire un clickdroit dessus, de selectionner Team puis Share Project, puis le serveur de versionning (CVS ou SVN) puis le repository et c'est partit ... D'une simplicité enfantine et déconcertante quand on a passé un paquet d'heure sur la ligne de commande !!!
Synchronise son projet avec le repository
Première chose a faire : clickdroit sur son projet puis Team > Synchronize with repository (on vous propose de changer de perspective ... C'est selon vos préférences, personnellement j'ai dis non ...). Dans votre vue de synchronisation on vous indique qu'il n'y a pas de changements ...
Pour se convaincre de la puissance de tout ça modifions un fichier et on apperçoit directement la synchronisation qui nous indique un changement. L'explorer aussi, une petite marque s'est rajoutée sur le fichier. La plusieurs choix s'offrent a vous : Soit vous faites dans la vue d'explorateur un click droit sur le fichier puis Team et commit, soit (et c'est ce que je fait) vous bossez essentiellement avec la vue des synchronisation ...
Lorsque vous avez suffisament modifié de fichiers (suffisament est très subjectif ;)) vous décidez d'envoyer vos modifications ... voici la marche a suivre :

Cliquez sur ce bouton mais je vous conseille vivement de découvrir ce que font tous ces boutons (en laissant la souris au dessus) puisqu'ils font parti de l'optimisation du temps d'utilisation de CVS... Après avoir cliqué on vous propose de commenter vos changements

Vous avez également la possibilité d'enlever des fichiers de la vue en dessous. La on vous insulte d'un message anglophone qu'une fois traduit vous laisse perplexe ... mais en gros, lorsque vous supprimez un fichier de cette vue, dites oui ça n'influe que sur la fenêtre en cours ...
Et voila ... C'est commité... c'était dur hein ?
D'autres options
Je ne vais pas vous expliquer l'incommensurable quantité de possibilité de CVS for Eclipse mais vous en faire un tour rapide :

On voit ici un paquet de possibilitée, les patch, les branches, les tags, la fonction de changement de type (binary->ascii et l'inverse), la possibilité d'ignorer le fichier dans les différentes vues (ignorer au sens cvs).
Bref il faut dévcouvrir ;)
Les trucs excellentissimes :
la fenêtre de diff ... Dans la vue de synchronisation un double click vous affiche la différence entre le server et le local (la vue est magnifiquement bien faite ...)
On peut renommer un fichier, les déplacer directement dans eclipse, il s'arrange pour que sur le CVS ça reste cohérent ...(ce qui supprimer un gros défaut de CVS, en partie du moins ...)
La vue d'historique permet de voir les évolutions du fichier et même de voir le fichier au cours des différentes évolutions ...
Et bien plus encore ...

Comments
Merci
article très très intéressant ...
francht tres tres bien comme article. Et mm les images ce qui est rare. J'aurai juste une question : sais tu comment il faut faire pr supprimer definitivt un fichier du repository, sachant que cvs remove me laisse le fichier et donc bouffe de la place !!( c ca mon souci) faut il seult aller sur le repository et supprimer le fichier, Merci
C'est le principe de CVS et heureusement qu'il garde tout ! Si tu dis que tu veux récuperer ton projet tel qu'il était le 22 mars 2006 il faut que tous les fichiers que tu as supprimé soient à nouveau présent ...
Maintenant si dans CVS tu as mis un fichier de 14G et que tu veux le virer faux accéder au repository mais c'est jamais très bon de faire ça !
Merci ca risque de m'etre très utile, j'apprecie le boulot.
Un très bon tutoriel pour CVS sous Eclipse
Bonjour,
Un bon article. Un Grand MERCI
I like to visit your site. You always give nice recommendations. I thank you for your efforts to share your insights and help the world become a better place.
Notez qu'il est possible d'avoir tous les menus d'Eclipse en français : il suffit d'installer les plugins de francisation: c'est le projet Babel de la fondation Eclipse.
http://www.eclipse.org/babel/downloads.php
Chaque plugin Eclipse a son plugin de traduction correspondant.