Utiliser les fonctions CVS dans JBuilder 5

Sylvain BARTHELEMY
Web: http://www.sylbarth.com

Juin 2001

De nombreuses nouveautés importantes ont été introduites dans la version de JBuilder 5 : intégration XML, améliorée, outils performants de développement plus performants et plusieurs fonctionnalités de travail en groupe. Borland à offert ces fonctionnalités de travail en groupe sous trois formes: ClearCase (non inclu dans la bêta testée), Visual SourceSafe et CVS (les nouvelles fonctionnalités de travail en groupe de JBuilder 5 sont disponibles à l'adresse http://www.borland.com/jbuilder/jb5/feamatrix/teamdev.html). Notre attention c'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'une 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.


 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 suivants :

    
    	[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 fournit dans cet article en remplacant toutes les références au lecteur réseau u:\ (qui est un alias de [cvs]) par des référence au lecteur local c:\.

Une fois le répertoire crée, 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'éqipe 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'écriture sur 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 donc procéder à l'importation d'un premier projet.


 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 un 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 apparaitre 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 apparaitra l'écran suivant :

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 croit 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épertoire 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 apparaitre l'écran suivant:

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


 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 de faire un Checkout du projet. Pour celà, utilisez pour celà 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. Etant donné que notre arborescence est de type "Local", sélectionnez l'option adéquate dans cette boite 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ême 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 modification que vous désirez sur le projet et une fois que vous avez terminé executez 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 apparaitre lors d'un Commit, vous verrez l'écran suivant:

Il faut alors exécuter un update de votre projet (Team / Update Project ...) et ne 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 icones à gauche des zones verte pour décider de conserver l'une ou l'autre version du code avant de pouvoir faire un nouveau Commit Project.