Présentation et utilisation du plugin borCVS pour Borland C++ Builder 6

Cet article a pour but de vous présenter l'installation et l'utilisation du plugin borCVS avec Borland C++ Builder 6.

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Avant-propos

La maitrise du travail collaboratif en informatique est devenue ces dernières années l'une des pierres angulaires de la bonne marche d'un projet.
La gestion des versions avec un outil comme CVS est d'ailleurs désormais le plus souvent intégrée aux environnements de développements les plus récents.

Comment faire lorsqu'on utilise un produit qui ne gère pas ces aspects mais répond aux autres besoins, et que l'acquisition d'une version plus récente ne s'impose pas ?
C'est peut être votre cas avec Borland C++ Builder 6 (du moins ce le sera lorsque la sortie de son successeur sera officiellement annoncée). Que faire ?
Vous avez plusieurs possibilités : découpler totalement la partie versioning en utilisant un système et un utilitaire à part (par exemple le couple gratuit CVS/winCVS ou encore la solution maison Borland StarTeam), ou rechercher un plugin (relatif à un système de versioning donné) pour gérer la configuration directement dans C++ Builder.
C'est cette dernière solution qui nous intéresse dans cet article, et en particulier le couple CVS/borCVS, le plugin borCVS étant issu d'un projet sourceforge et supporté par les versions 5 et 6 de Delphi et C++ Builder.

L'accent ne sera pas mis sur les bases de CVS dans cet article.
Si CVS vous est inconnu, je vous conseille de prendre connaissance des éléments fondamentaux qui le caractérisent en consultant les ressources référencées en fin d'article.

Bien entendu, tout remarque constructive est la bienvenue (idées d'approfondissement, améliorations, ...). Merci de privilégier les forums pour vos questions sur le sujet.

Remerciements

J'adresse mes remerciements à Greybird pour la relecture technique, ainsi qu'à Beuss pour la relecture orthographique de cet article.

1. Rappels sur CVSNT

CVSNT fournit les fichiers et l'interface nécessaires pour utiliser et configurer CVS dans un environnement Windows.
Ce paragraphe a pour but de vous présenter la configuration utilisée dans le cadre de cet article. La phase de paramétrage du plugin borCVS n'en sera que plus facilement compréhensible pour ceux qui commencent avec CVS.

1.1. Installation

On supposera pour la suite que l'installation de CVSNT a été faite conformément aux conseils que l'on trouvera sur le site de ses auteurs à l'url suivante : http://www.cvsnt.org/wiki/InstallationTips.

1.2. Configuration

La configuration de CVSNT à prendre en compte pour la suite se limite à ce qui se trouve dans l'onglet Repository du Control Panel.
La figure suivante illustre la manipulation faite dans le cadre de cet article :

création d'un repository

Nous avons donc ici les informations de configuration du repository sur lequel nous allons travailler avec C++ Builder : sa localisation dans le système de fichiers, et son alias.

2. Présentation de borCVS

borCVS est un plugin gratuit et open source pour C++ Builder et Delphi (versions 5 et 6), sous licence GNU, résultant du travail de son auteur Thomas Bleier.
Initialement développé en C++, le projet a été porté en Delphi par Per-Eric Larsson.

borCVS est un projet hébergé par Sourceforge qui n'a pas évolué depuis un certain moment, mais dont l'utilisation reste possible, assez simple et pratique comme nous le verrons plus loin.

2.1. Téléchargement

Pour obtenir le plugin borCVS pour la version 6 de C++ Builder, rendez vous à l'adresse suivante et téléchargez le fichier BorCVS-snapshot-BCB6.zip : http://sourceforge.net/project/showfiles.php?group_id=36894

2.2. Installation

Dézippez le fichier téléchargé pour obtenir les fichiers suivants (présents dans P:\Borland\BorCVS-snapshot-BCB6 pour cet article) :

  • BorCVS6.dll
  • cvs.exe
  • index.html
  • LICENSE.txt
  • Manual.html
  • Readme.html
  • Setup.exe

Pour ajouter (ou retirer) le plugin de votre environnement de développement préféré, il vous suffit de lancer Setup.exe et de sélectionner l'option adéquate, comme l'illustre la figure suivante :

activation du plugin

En lancant C++ Builder, vous devriez voir apparaître un nouvel élément appelé CVS dans le menu :

Menu CVS

Nous reviendrons par la suite sur les différentes fonctionnalités accessibles à partir de ce menu.

2.3. Configuration

Vous voila presque prêts à utiliser le plugin pour enfin gérer votre projet favori avec CVS !
Il ne reste qu'un seul détails, mais non des moindre : configurer le plugin pour qu'il puisse communiquer avec le serveur CVS.

L'auteur de borCVS recommande l'utilisation de cvs.exe fourni avec le plugin. Cependant, pour des raisons évidentes de compatibilité avec le serveur, il est plus intéressant de configurer le plugin pour utiliser cvs.exe fourni par l'installation de CVSNT.
Il vous faut ainsi configurer les préférences (CVS | Preferences dans le menu) de borCVS en vous référant à la figure suivante :

Préférences

On notera au passage la possibilité de forcer l'enregistrement des fichiers lorsqu'ils sont commités, fonctionnalité qui pourra être utilisée ou non selon les habitudes de chacun.

3. Utilisation du plugin

Dans tout ce qui suit, les échanges avec le serveur CVS se font avec le protocole le plus simple possible, à savoir la connexion en local (cela implique bien entendu que le serveur est bien sur le même poste que celui utilisé).
Cela ne veut bien entendu pas dire que les autres protocoles ne sont pas possible. Il s'agit simplement de se concentrer sur l'utilisation du plugin, ce qui passe par la réduction au plus faible de la complexité de CVS.

Pour de plus amples renseignements sur les protocoles de communication supportés par CVS, vous pourrez vous référer aux ressources référencées en fin d'article.

3.1. Importer son projet

Nous allons tout d'abord décrire comment importer un projet dans le repository, c'est à dire ajouter un projet à CVS afin de pouvoir par la suite en gérer plusieurs versions.

Pour cela, ouvrez un projet existant, puis lancez CVS | New module pour obtenir l'écran suivant :

New module

Ce qui nous intéresse ici est la valeur de Local directory qui va pointer vers le répertoire contenant votre projet, ainsi que Module name (and path) on the server qui correspond au nom du module à utiliser lorsque vous souhaitez extraire votre projet de CVS.
Passons ensuite à l'onglet CVSROOT qui va nous permettre de définir la variable d'environnement du même nom.

New module

Comme nous avons choisi d'utiliser la méthode de connexion local, la définition de CVSROOT est des plus simples puisqu'il suffit de sélectionner le répertoire configuré auparavant avec CVSNT.

Après avoir validé, vous pourrez constater que borCVS a déplacé le répertoire local ayant servi pour l'import, et a extrait votre projet (désormais versionné) dans un nouveau répertoire du même nom que celui utilisé auparavant.
Vous pouvez dès lors supprimer le répertoire renommé en *.precvs

3.2. Extraire un module

Plaçons nous maintenant à la place du développeur souhaitant travailler sur le projet géré sous CVS.
Pour ce faire, il faut utiliser la commande CVS | Checkout du menu et renseigner le nom du module ainsi que le répertoire local de destination, comme sur la figure suivante :

Checkout

Après validation, borCVS va créer le répertoire E:\BCB\borCVS1 dans lequel seront copiés les fichiers du projet.
Vous noterez que si le nom du répertoire ne vous plait pas, il vous est possible de spécifier le nom à donner au répertoire créé. Cependant, cette option de la commande cvs checkout n'étant pas prise en charge par le plugin, vous aurez à réaliser le checkout "à la main" par l'intermédiaire de la commande CVS | CVS command qui vous ouvre une nouvelle fenêtre dans laquelle vous pourrez lancer vous même les commandes cvs comme si vous étiez en ligne de commande (au détails près que vous n'écrirez pas "cvs sous_commande ..." mais "sous_commande ...").

3.3. Enregistrer de nouvelles révisions

Après avoir réalisé certaines modifications sur votre projet, vous aurez également envie de les répercuter sur le serveur, soit parce que vous jugez utile de mémoriser l'état actuel du projet, soit pour permettre à un autre développeur d'avoir des versions plus récentes des fichiers.
Pour cela, vous pouvez utiliser la commande CVS | Commit project qui vous ouvrira la fenêtre suivante :

Commit

Vous avez ici à sélectionner les fichiers à commiter, ce qui peut être fait en masse à l'aide de la fonctionnalité Mark qui vous propose la sélection des fichiers suivant leur état (en l'occurence ici l'état "Modified").

Une fois les fichiers sélectionnés et le commit lancé, vous pourrez constater que les numéros de révision des fichiers commités ont été incrémentées.

3.4. Ajouter un fichier

Votre projet évoluant régulièrement, il vous arrivera certainement d'y ajouter un fichier.
L'ajout classique d'un fichier ne suffit pas à ce qu'il soit pris en compte et référencé par CVS lors d'un commit. Pour ce faire, il faut passer par la commande CVS | Add qui vous ouvrira la fenêtre suivante :

Ajout de fichier

Lors de l'écriture de cet article, j'ai constaté (comme cela est illustré sur la figure précédente) que les nouveaux fichiers n'étaient pas visibles dans la fenêtre d'ajout. Pour afficher les fichiers que vous souhaitez ajouter, il faut avoir recours à l'astuce suivante : clic droit, Add file pour obtenir l'écran suivant :

Ajout un fichier

Après avoir sélectionné le fichier en question, vous pouvez également renseigner une description, puis valider.

Si CVS ne vous est pas familier, sachez que l'ajout du fichier est une opération uniquement faite localement (modification des fichiers locaux gérant les informations pour CVS). Il sera donc nécessaire de procéder à un commit (cf. paragraphe précédent) où vous aurez probablement à réutiliser l'astuce précédente pour avoir le fichier en question dans la liste des fichiers.

3.5. Créer une version

Le concept de version pour CVS, au contraire de celui de révision, concerne le marquage d'une information supplémentaire (tag) d'un ensemble de fichier.
Vous souhaiterez par exemple retrouver votre projet dans un état donné, et c'est ici que cette notion vous sera d'une grande aide (imaginez vous mettre à jour les fichiers uns par uns vers une révision donnée, ou une date donnée ...).

Pour poser un tag sur les fichiers de votre projet dans les révisions actuellement éditées, il suffit d'utiliser la commande CVS | Tag/Branch afin d'obtenir la fenêtre suivante :

Création d'une version

3.6. Récupérer une ancienne version

Quelques semaines plus tard, vous souhaitez retrouver votre projet tel qu'il était lorsque vous avez défini une première version. Pour cela vous n'avez qu'à utiliser l'une des variantes de la commande CVS | Update project :

Extraire une version

3.7. Consulter l'état des fichiers

borCVS prend également en charge la classique commande cvs status et vous permet ainsi en un coup d'oeil de consulter l'état de l'ensemble des fichiers de votre projet.
Pour cela, il suffit d'utiliser la commande CVS | Status pour obtenir la fenêtre d'information suivante :

Etat des fichiers

Vous pouvez ainsi visualiser des informations telles que les numéros de révision, les dates correspondantes, le statut (modifié, etc...), mais également un éventuel Sticky Tag résultant d'un update (en l'occurence ici, vous constatez que votre version locale correspond à la version ayant le tag "v1".

3.8. Revenir aux révisions les plus récentes

Pour finir, l'opération suivante permet de reprendre en local les révisions des fichiers les plus récentes.
Pour ce faire, il suffit d'utiliser la commande CVS | Update project en prenant soin de tout décocher dans l'encadré Update to revision et de cocher l'option Reset sticky options afin de faire abstraction de l'indicateur tag "v1" précédemment fixé lors du précédent update).

Reset Sticky tag

4. Conclusion

J'espère que ce petit article vous aura fait découvrir un outil que vous adopterez pour vos travaux collaboratifs.
Je pense surtout aux groupes d'étudiants qui, ne connaissant ni CVS, ni l'existence d'outils intégrés à BCB, qui en sont réduits à gérer leur projet de manière artisanale en s'échangeant les fichiers (il y a du vécu dans ce que j'écris ...).

J'encourage donc ceux qui ne peuvent pas s'offrir un StarTeam et qui souhaitent intégrer une gestion des sources à leur EDI préféré à prendre quelques minutes pour tester borCVS !
Malgré la (très) faible activité du projet borCVS sur sourceforge, le résultat est amplement satisfaisant et peut convenir à une grande majorité de projets.

5. Liens

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Articles et tutoriels Borland C++ Builder
Accédez à une base de données Access avec les composants du BDE
Guide d'installation de la RxLib sous BCB 6
Présentation et utilisation du plugin borCVS pour Borland C++ Builder 6
Articles et tutoriels Java
Présentation de l'API Reflection
Gestion d'images en base de données avec l'API JDBC
Interview et reportages
Compte rendu des conférences JAX 2006, Eclipse Forum Europe 2006, EAKon 2006
Interview d'Eric Lefevre, consultant chez Valtech, au sujet de l'Open Space Technology
Compte rendu des Valtech Days 2007
Autres articles et tutoriels
Introduction à CVS
Présentation du langage NICE
Critiques de livres
Jakarta Struts Par la pratique (Eyrolles)
Initiation à JSP (Eyrolles)
Gestion de projets avec Subversion (O'Reilly)
Struts - Les bonnes pratiques pour des développements web réussis (Dunod)
Hibernate 3.0 : Gestion optimale de la persistance dans les applications Java/J2EE (Eyrolles)
Analyse et conception orientées objet - Tête la première (O'Reilly)
Gestion de projet eXtreme Programming (Eyrolles)
Gestion de projet - vers les méthodes agiles (Eyrolles)
Autres liens sur Developpez.com
La FAQ C++ Builder
Les Sources C++ Builder
Les FAQs JAVA
  

Copyright © 2005 Ricky81. 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.