Utiliser le CVS

De OpenESubWiki.

Sommaire

Introduction

Quand un projet implique plusieurs personnes complètement dispersées du point de vue géographique, il se pose toujours le problème de l'échange et de la modification des fichiers. Si tout le monde travaille sur les mêmes fichiers (ce qui est le cas pour openESub), l'ensemble doit être disposé dans une source centrale et partagée que chacun modifiera. Cependant, il faut veiller à ne pas écraser le travail des autres. Si vous récupérez un fichier et si vous le replacez dans la source centrale une fois modifié par vos soins, rien ne vous dit qu'entre temps, quelqu'un n'a pas lui même effectué une autre modification que vous allez irrémédiablement écraser...

La solution existe et elle est très utilisée dans le monde du logiciel libre : ça s'appelle CVS. Le principe est bien sûr de centraliser tous les fichiers dans un répertoire particulier appelé repository. Cependant, on ne peut pas accéder directement à ce répertoire particulier. Il faut passer par ce qu'on appelle un client CVS qui lui ne transmettra au serveur central que les modifications que vous avez apportées tout en vous empêchant d'écraser le travail des autres... En outre, avec CVS, vous pouvez continuellement retourner en arrière et annuler les modifications réalisées... Je ne détaillerai pas plus les fonctionnalités. Voyons comment ça s'utilise en pratique sous Windows et Linux (d'autres clients existent pour les autres systèmes d'exploitation).

Les prérequis

Afin d'éviter que n'importe qui ne puisse modifier les fichiers, il faut obtenir auprès des responsables projet un couple login/password pour s'identifier sur le serveur CVS. Si vous n'en avez pas, vous ne pourrez que lire l'ensemble des fichiers et les récupérer. Libre à vous ensuite de proposer des modifications aux responsables du projet... Si vos contributions sont de qualité, ces derniers vous donneront rapidement un accès en écriture.

Comment utiliser CVS sous Windows

Il existe différents clients CVS sous Windows. Nous prendrons l'exemple du plus facile à utiliser : TortoiseCVS. Commencez par le télécharger à l'adresse ICI. Puis installez-le.

Après avoir redémarré votre PC (Windows oblige), lancez "l'explorateur de fichiers". Mettez-vous dans un répertoire de travail et faites un clic droit. Dans le menu contextuel qui s'ouvre, choisissez 'CVS checkout'. Une boite s'ouvre alors pour spécifier les paramètres de configuration du serveur.

Je n'ai pas d'accès 'écriture' à CVS

Voici les seuls (ne pas toucher aux autres champs) paramètres à remplir (attention à bien respecter les minuscules/majuscules) :

  • Module : openESub
  • Protocol : Password server ( :pserver)
  • Server : openesub.org
  • Repository directory : /usr/local/cvsroot
  • User name : cvsanonyme

Faites 'ok' et tapez pass comme mot de passe. Vous récupérez alors immédiatement la toute dernière version de l'ensemble du projet. Dans votre répertoire de travail, vous trouverez alors un répertoire openESub qui contiendra tous les fichiers. Plus tard, si vous répétez cette même opération, vous récupèrerez les dernières mises à jour des fichiers sans tout re-télécharger.

J'ai un accès 'écriture' à CVS

Vous disposez donc d'un login et d'un password spécifiques que vous a communiqués un responsable du projet. Voici les paramètres à remplir dans ce cas :

  • Module : openESub
  • Protocol : Password server ( :pserver)
  • Server : openesub.org
  • Repository directory : /usr/local/cvsroot
  • User name : votre login CVS

Faites 'ok' et tapez votre mot de passe. Le client CVS charge alors la tout dernière version de l'ensemble du projet et la place dans le répertoire openESub. Plus tard, si vous répétez cette même opération, vous récupèrerez les dernières mises à jour des fichiers sans tout re-télécharger.

Supposons maintenant que vous ayez modifié un fichier et que vous souhaitiez faire 'remonter' votre modification. Faites un clic droit sur le fichier modifié et choisissez 'CVS commit'. Une fenêtre s'ouvre et vous demande de taper la description de votre modification. Puis validez et la modification remonte vers le repository central.

Pour ajouter un fichier au repository central, placez-le à l'endroit où vous souhaitez l'ajouter, puis clic droit et choisissez l'option 'CVS add'. Puis refaites un clic droit pour choisir 'CVS commit'. Vous pourriez rajouter également des répertoires mais cela découle plus de la responsabilité du chef de projet (organisation). Donc, ne créez pas de répertoire sans l'accord d'un des responsables !

Vous pouvez voir à tout instant quel est l'état du repository central en vous rendant à cette adresse.

Avant de modifier des fichiers du repository openESub, vous pouvez vous entraîner en utilisant le répertoire openESub/test.

Enfin, avant de commencer, lisez les quelques recommandations données à la fin de ce document.

Comment utiliser CVS sous Linux

Tout ce qui est nécessaire est disponible par défaut dans toute bonne distribution Linux, sinon ajoutez les programmes correspondants depuis vos CDs d'installation. Il n'y a donc rien (en principe) à télécharger. Vous pouvez cependant choisir l'éditeur de texte par défaut en renseignant la variable EDITOR. Par exemple :

export EDITOR=kedit

Il existe des clients CVS en mode graphique comme sous Windows mais, dans ce qui va suivre, nous verrons uniquement l'utilisation du client CVS en ligne de commande (bien plus rapide à l'usage).

Je n'ai pas d'accès 'écriture' à CVS

Ouvrez une fenêtre de commande, placez-vous dans un répertoire de travail et tapez en user :

export CVSROOT=:pserver:cvsanonyme@openesub.org:/usr/local/cvsroot

cvs login

Le mot de passe est : pass.

cvs co openESub [pour la branche de développement]

ou

cvs co -r BRANCH_1_4 openESub [pour travailler sur la branche 1.4.x (uniquement corrections de bugs)]

Cela va créer et charger le répertoire openESub qui contient alors tous les fichiers du projet. Plus tard, lorsque vous souhaiterez mettre à jour votre répertoire openESub, placez-vous dans le répertoire père d'openESub et refaites les 3 commandes ci-dessus.

Pour ne pas retaper à chaque session la première ligne un peu longue, rajoutez-la par exemple à la fin de votre fichier '.bashrc'. Relancez alors votre fenêtre de commande et vous n'aurez plus jamais besoin de la retaper.

J'ai un accès 'écriture' à CVS

C'est exactement la même chose sauf que vous devez remplacer cvsanonym par votre login CVS (que vous aura donné le responsable projet). Il faut également utiliser votre mot de passe CVS à la place de pass.

Une fois votre répertoire openESub mis à jour, lorsque vous avez modifié un fichier et pour le transmettre au serveur central, placez-vous dans le répertoire qui le contient et tapez :

cvs commit leNomDeVotreFichier


Votre éditeur de texte s'ouvre alors pour que vous saisissiez la raison de cette modification. Faites-le puis enregistrez et fermez l'éditeur. La modification se répercute alors sur le repository central.

Pour ajouter un fichier, placez-le là où vous le souhaitez. Amenez votre fenêtre de commandes dans le répertoire qui le contient et tapez :

cvs add leNomDeVotreFichier

puis

cvs commit leNomDeVotreFichier

Vous pourriez rajouter également des répertoires mais cela découle plus de la responsabilité des responsables du projet (organisation). Donc, ne créez pas de répertoire sans l'accord d'un responsable.

Quelques recommandations pour finir

Si vous ne travaillez que sur un module particulier, vous pouvez (si vous le souhaitez) charger uniquement ce qui vous intéresse via le CVS en remplaçant le nom du module (openESub sur nos exemples) par :

  • openESub/jeu, pour le jeu en lui même ;
  • openESub/test, pour les tests du CVS ;
  • (...)

En outre, afin d'assurer un suivi plus facile, toute modification de fichier sur le CVS (hormis pour le répertoire de tests) se traduira par l'envoi d'un mail récapitulant la modification. Ce mail est envoyé à la liste de diffusion openesub-cvs@openesub.org. Pour s'inscrire à cette liste (fortement recommandée à tous les développeurs d'openESub), il suffit d'envoyer un mail vide à openesub-cvs-subscribe@openesub.org.

Aucun des fichiers d'openESub n'est un fichier Microsoft Word, vous ne devez donc pas les ouvrir avec Word. Par contre, les fichiers sont pour la plupart de simples fichiers textes. Vous pouvez donc les modifier avec un simple éditeur de texte. Le plus connu sous Windows reste le 'Bloc Notes'.

Le caractère 'tabulation' est banni dans le projet openESub. L'indentation est fixée à 4 espaces. Merci donc de configurer votre éditeur de texte pour qu'il renvoie 4 espaces en lieu et place d'une tabulation. Ou alors, plus simplement, ne touchez pas à la touche 'Tabulation'.

CVS est un outil fantastique mais il ne remplace pas la communication. Donc si vous n'êtes pas sûr de ce que vous faites, demandez...

Dans chaque répertoire du projet, vous trouverez un répertoire nommé 'CVS'. Il est nécessaire au bon fonctionnement du CVS. N'y touchez jamais sous peine de problèmes.

Outils personnels