cvs


Introduction

Afin de permettre à pratiquement chacun de contribuer à changer les pages web de l'association, tout en gardant un minimum de contrôle et de sauvegardes (on sait qui a fait quoi, et on a un moyen de revenir en arrière si une bêtise a été faite (genre : le bourrin qui ouvre une page ciselée en HTML4 strict avec Frontpage ou Communicator, ajoute une faute d'orthographe, et resauvegarde le tout avec du chteumeul que même mon imprimante 9 aiguilles elle fait un bluescreen dessus)), on a mis en place le système de contrôle de révisions CVS, qui permet à plusieurs utilisateurs de travailler simultanément, en plus de retenir toutes les versions de tous les fichiers, qui a fait ces modifs et quel est le commentaire des modifications.

Pour plus de puissance d'utilisation :

Prérequis

Pas grand chose, enfin bon quelques classiques quand même (ne pas s'inquiéter, c'est loin d'être aussi dur que ça n'y paraît) :

Accessoirement, un bon Bescherelle ne peut pas faire de mal, on passe réellement pour des charlots (et c'est inadmissible) si, futurs profs, nous ne sommes pas capables d'écrire avec une orthographe et une syntaxe correctes (même si le style peut être lourd et non littéraire ;-) ).

Principe

Chacun embarque une copie privée de tout le site (moins les pages utilisateur), y travaille. Quand un ensemble cohérent de modifications a été fait, le système CVS est appelé pour réintégrer les modifications dans la base centralisée. Cinq minutes après, le site web 'officiel' est à jour.

Mise en route

Avant de commencer, je ne saurais trop recommander d'aller lire une ou deux docs sur le fonctionnement intime de CVS (y'a assez de pointeurs là-haut), mais dans un premier temps, voici comment faire :

  1. Avant chaque session, taper :
    export CVSROOT=/home/httpd/CVS-Repository
  2. La première fois. Je conseille de mettre la zone de travail personnelle dans un sous répertoire de ~/www, cela permet ainsi de tester ses modifications avant de les envoyer au central... Si ce n'est pas déjà fait il faut se créer un répertoire ~/www.
    mkdir ~/www
    Une fois cette formalité passée, ou bien si c'était déjà fait, on peut se créer un répertoire perso pour bosser sur le site du crans.
    cd ~/www
    mkdir mycrans
    cd mycrans
    
    Puis on importe la section du site qui nous intéresse (et celle-ci seulement !). Inutile de copier les centaines de Mo que représente le site entier juste pour modifier une seule page... Supposons que l'on veuille travailler sur la partie "La vie @ Crans" du site principal. La manip est la suivante :
    cvs co web/vie/

    Ceci extrait une copie partielle du site web dans son répertoire perso, elle est accessible à l'adresse http://www.crans.org/~toto/mycrans/web/sous-repertoire/ (en supposant que ton login soit toto).

    Mais supposons maintenant que je veuille créer un sous répertoire qui n'existe pas encore, par exemple "Pizza et Japonais".

    On crée au préalable le répertoire en question :
    cd ~/www/mycrans
    mkdir -p web/vie/pizza-et-japonais/
    puis on l'ajoute au CVS :
    cvs add web/vie/pizza-et-japonais/
    
  3. Les fois d'après, avant de se remettre à bosser, ou juste avant d'expédier ses modifications, il faut se mettre à jour (pour récupérer les modifications faites par les autres, et résoudre d'éventuels conflits si plusieurs personnes bossent au même endroit). La commande suivante permet de faire cette mise à jour pour le répertoire sur lequel on travaille :
    cd ~/www/mycrans/web/sous-repertoire-de-travail/
    cvs up -d
    On peut également ne mettre à jour qu'un seul fichier de la même manière, ce qui est bien plus rapide que de mettre à jour toute l'arborescence :
    cd ~/www/mycrans/web/sous-repertoire-de-travail/
    cvs up -d foo.html
  4. A chaque fois que l'on ajoute un fichier ou un répertoire, il faut signaler à CVS que désormais, ce fichier est sous son contrôle (sinon il ne sera pas intégré à l'archive centrale) :
    cvs add foo.html

    Remarque importante : à cause de la machinerie interne qui nous permet de gérer le site web, il ne faut utiliser que des noms de fichiers ou de répertoires ne contenant pas d'espaces, et surtout, ne pas ajouter de tels fichiers ou répertoires au repository CVS.

  5. De la même façon, pour effacer un fichier, il faut procéder ainsi :
    cd ~/www/mycrans/web/toto/titi
    cvs rm -f foo.html

    (CVS se charge de faire l'effacement)

  6. Une fois que l'on a signalé à CVS qu'un fichier lui appartient, il détecte tout seul les modifications, lorsqu'on effectue l'expédition...
    étape suivante !

  7. Une fois que l'on a réalisé un ensemble de modifications cohérent, et surtout que l'on a vérifié dans son browser à l'adresse http://www.crans.org/~toto/mycrans/web/sous-repertoire/ que les pages qu'on a ajoutées/modifiées sont comme on le souhaitait, on peut les expédier sur le serveur, avec cette commande :

    cd ~/www/mycrans/web/sous-repertoire/
    cvs commit
    On peut aussi n'effectuer le commit que sur un seul fichier, celui que l'on vient de modifier :
    cd ~/www/mycrans/web/sous-repertoire/
    cvs commit foo.html

    Le machin va demander un commentaire sur les modifications, une ligne ou deux. Taper

    i
    pour commencer à écrire, puis control-C pour sortir du mode insertion une fois que le commentaire sera tapé, et enfin
    :wq!
    pour sortir de l'éditeur.

  8. Quand tout est fini, que les modifications ont été testées et envoyées, et que l'on ne prévoit pas de s'y remettre avant un moment, il est de bon ton d'effacer son répertoire temporaire, chaque zone de travail prend pas mal de Mo sur le disque du serveur :

    rm -rf ~/www/mycrans

    Mais bon, il ne s'agit pas de faire un checkout et de tout effacer une fois tous les deux jours... N'effacez votre copie de l'arborescence CVS que si vous n'allez pas retravailler dessus avant un bon moment.

Remarques Autres remarques

Toutes les 15 minutes environ, le système envoie un compte-rendu des commits effectués par tous les membres du groupe webcvs ainsi qu'un lien vers le diff entre les deux version du fichier modifié, dans le newsgroup crans.cvs-checkins. Ça peut être une bonne idée de le consulter....

Conclusion

Ce système peut paraître un peu lourd, mais est indispensable dès que l'on travaille à (potentiellement) beaucoup sur les mêmes fichiers.



top Index des documents documents home home dernière modif le 05.12.04 par Benoit. Valid HTML 4.01!

 

Utiliser CVS
presentation
liens
informations
vie
annuaire
pages perso
webmail
ssh