Tutoriel pour utiliser le gestionnaire de sources CVS avec JBuilder 5

Sylvain Barthelemy

De nombreuses nouveautés importantes ont été introduites dans la version de JBuilder 5 : intégration XML améliorée, outils de développement plus performants et plusieurs fonctionnalités de travail en groupe. Borland a offert ces fonctionnalités de travail en groupe sous trois formes : ClearCase (non inclus dans la bêta testée), Visual SourceSafe et CVS. Notre attention s'est portée sur CVS, car c'est à notre avis un des systèmes les plus performants. Nous allons présenter de façon simple et visuelle, la mise en place d'un répertoire CVS qui pourra être partagé pour offrir les fonctionnalités nécessaires à tout travail en groupe structuré. Nous aborderons donc dans une première partie la création d'un répertoire CVS initial. Nous importerons ensuite un projet factice dans cette arborescence nouvellement créée pour détailler ensuite la façon de travailler avec un espace de stockage CVS.

- Titre : Tutoriel pour utiliser le gestionnaire de sources CVS avec JBuilder 5

- Auteur : Sylvain Barthelemy

- Parution : 1 juin 2001

- Licence : Copyright ® 2000 Sylvain Barthelemy. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Création du répertoire CVS initial

- II. Importer un nouveau projet

- III. Travailler sur un projet CVS existant

- IV. Conclusion

I - Création du répertoire CVS initial

La première chose à faire avant de pouvoir utiliser les fonctionnalités de travail en groupe à l'aide de CVS, est de disposer d'un emplacement que l'on pourra partager pour que CVS y stocke les fichiers nécessaires à la gestion et au contrôle des versions. Cette étape est appelée aussi initialisation du répertoire CVS (équivalent du cvs init pour ceux qui viennent du monde Unix).

- Afin de rendre l'exemple facilement exploitable, nous avons ici utilisé une configuration de partage de fichiers à l'aide de Samba (disponible sur http://www.samba.org). Sur le serveur de fichiers nous avons donc partagé un répertoire nommé [cvs] à l'aide des paramètres de configuration entrés dans le smb.conf suivant :

[cvs]
path = /home/cvs
read only = No

- Si votre serveur est un serveur Windows NT, il suffit de partager un répertoire portant le nom [cvs].

- Si vous ne disposez ni d'un serveur, ni d'un réseau local, vous pourrez toujours exécuter l'exemple fourni dans cet article en remplaçant toutes les références au lecteur réseau u:\ (qui est un alias de [cvs]) par des références au lecteur local c:\.

Une fois le répertoire créé, les utilisateurs qui auront besoin d'accéder au répertoire CVS devront créer un lecteur réseau (que nous nommerons u: dans tout le reste du document) et qui fera office de dépôt local de fichiers CVS.

L'administrateur réseau ou un membre de l'équipe de développement devra initialiser le répertoire CVS. Cette opération peut s'effectuer simplement via JBuilder en exécutant la commande : Team / Create Local Repository.

Il vous est alors demandé de spécifier l'emplacement sur lequel vous voulez que l'arborescence CVS soit initialisée (la racine de l'arborescence CVS). Pour cet exemple, nous avons choisi le répertoire u:\jbCVS, une alias de \\serveur_de_fichiers\cvs\jbCVS, qui est un répertoire partagé.

Une fois ce répertoire créé, JBuilder devrait faire apparaître le message suivant :

Dans le cas contraire, soit le répertoire n'était pas vide et il faut donc choisir un autre endroit pour stocker les fichiers CVS, soit vous n'avez pas les droits pour écrire dans ce répertoire et il faudra alors contacter l'administrateur de votre réseau pour qu'il vous accorde la permission d'écrire dans ce répertoire.

Si vous n'avez aucun message d'erreur, alors la création de l'arborescence s'est bien passée et vous pouvez procéder à l'importation d'un premier projet.

II - Importer un nouveau projet

Nous allons maintenant passer à la seconde étape que constitue l'importation d'un projet. Cette phase est nécessaire pour tout projet que l'on voudra partager par la suite, car elle permet de placer une version initiale des fichiers du projet concerné dans l'arborescence CVS.

Pour cet exemple, j'ai créé un projet simple nommé MonTestCVS.jpx, dans lequel j'ai ajouté une classe nommée MonTestCVS. Pour importer ce projet dans CVS, il suffit d'exécuter la commande : Team / Place Project into CVS et vous verrez alors apparaître l'écran suivant :

Veillez bien à sélectionner Local dans Connect type et u:\jbCVS dans Repository path (c:\jbCVS si vous utilisez JBuilder en local). Pour le nom du module (« Module Name »), mettez le même nom que celui de votre projet sans l'extension jpx. Vous pouvez alors cliquer sur Next et l'écran suivant apparaîtra :

Cette boite de dialogue vous permet d'entrer une description du projet. Cette description pourra s'avérer très utile si l'arborescence CVS croît de façon importante. Il n'est cependant pas nécessaire de mettre un commentaire pour ce projet exemple. Cliquez donc sur Next pour obtenir l'écran de sélection des répertoires suivant :

Ici, vous pouvez inclure et exclure des répertoires pour l'importation CVS. Ceci peut, par exemple, être pratique si vous désirez n'importer que les sources et non pas les programmes compilés (le cas ici, car « classes » n'est pas coché). Vous pouvez alors cliquer sur Finish et si tout se passe bien, vous verrez apparaître l'écran suivant :

Votre projet est maintenant placé dans l'arborescence CVS et les fichiers sont prêts pour le travail en groupe.

III - Travailler sur un projet CVS existant

Imaginons que vous ayez suivi les étapes de création du répertoire CVS initial et de l'importation du projet MonTestCVS avec succès. Si vous êtes un utilisateur lambda qui veut travailler sur le projet, la première chose à faire est un Checkout du projet. Pour cela, utilisez la commande Team / Check Out CVS Project :

Comme sur l'image ci-dessus, choisissez un répertoire cible (vide de préférence…) qui pourra recevoir les fichiers du projet et cliquez ensuite sur Next. Vous voyez alors apparaître l'écran suivant :

Comme lors de l'importation de notre projet MonTestCVS, CVS nous demande où il doit chercher les fichiers du projet. Étant donné que notre arborescence est de type « Local », sélectionnez l'option adéquate dans cette boîte de dialogue, comme spécifié sur l'image. Sur l'écran suivant, CVS vous demande des informations sur la localisation des fichiers locaux CVS et le nom du module à importer.

Vous devez utiliser les mêmes paramètres que ceux utilisés lors de l'importation. Ici le répertoire est u:\jbCVS et le nom du projet CVS MonTestCVS (il ne faut pas confondre le nom CVS du projet et le nom du projet JBuilder avec extension jpx, qui peuvent être différents).

Vous pouvez maintenant faire les modifications que vous désirez sur le projet et une fois que vous avez terminé, exécutez la commande Team / Commit Project pour mettre le projet à jour dans l'arborescence CVS.

Cliquez sur OK et si tout se passe bien, vous verrez apparaître l'écran suivant :

Maintenant, si un autre membre de votre équipe, qui travaille sur ce projet, exécute un Check Out (ou un update de son projet), il utilisera votre version modifiée. Si des conflits apparaissent lors d'un Commit, vous verrez l'écran suivant :

Il faut alors exécuter un update de votre projet (Team / Update Project …) et vous devriez obtenir le message suivant :

CVS fera une fusion entre vos modifications et les modifications incompatibles tirées de l'arborescence. C'est à vous de modifier le code pour qu'il n'y ait plus d'ambiguïtés (elles apparaissent sur fond vert fluo). Si par exemple vous avez le code suivant :

Vous pouvez cliquer sur une des deux icônes à gauche des zones vertes pour décider de conserver l'une ou l'autre version du code avant de pouvoir faire un nouveau Commit Project.

IV - Conclusion

Je vous souhaite bonne chance dans l'utilisation des fonctionnalités CVS de JBuilder. Je tiens à remercier f-leb pour sa relecture orthographique attentive de cet article.