Utiliser CVS sur lfo $Revision: 1.54 $ $Date: 2004/03/18 00:01:51 $ Utiliser CVS sur lfo

Version générée le Jeudi 18 mars 2004 <#if output="html">

Vous trouverez la dernière version du présent document à l'adresse: CVS c'est quoi et pour qui

CVS: Concurrent Versions System Le logiciel cvs est un système de gestion de versions permettent de travailler en équipe sur les mêmes fichiers. Destiné à l'origine aux projets informatiques, il peut aussi être utilisé pour la maintenance d'un site web. Liste de diffusion

Il existe une liste de diffusion destinée aux contributeurs du site travaillant avec CVS. Tout l'internet peux s'y inscrire ou y poster (moyennant confirmation). L'inscription est fortement recommendée pour les utilisateurs de CVS. Le traffic est léger. A chaque commit un courriel est envoyé sur la liste pour signaler que la base a été mise à jour. Dans le courriel se trouvent les fichiers ou répertoires modifiés ainsi que le Changelog écrit par l'auteur. Le champ "From:" est ma propre adresse (sinon sympa se plaint d'une boucle) même si ce n'est pas moi qui fait le changement. Le "Reply-To:" est la liste elle-même. Le champ "To:" est "Undisclosed-Recipient::", ça c'est la faute à sendmail car le compte cvs n'est pas un "trusted user" (il force le champ "From:"). Pour écrire sur la liste, l'adresse est: Pour se désinscrire, envoyer un message à: Pour s'inscrire, envoyer un message à: Pour contacter le responsable de la liste: Les archives existent mais ne sont pas encore accessibles. Permissions d'accès

L'accès en écriture à la base cvs du site est réservée aux contributeurs ayant un compte Unix et passe systématiquement par une authentification ssh. Si vous n'avez pas de compte unix, il suffit d'en demander un en expliquant ce vous comptez en faire. Si vous ne connaissez pas ssh, vous pouvez lire le document ssh sur lfoyer : Nous devons disposer de votre clef publique pour que vous puissiez lancer avec succès les commandes cvs. Pour cela, créer un fichier nommé id_dsa.pub dans votre répertoire de travail ($HOME) et renseignez-le avec votre clef publique. Ce peut être une copie de votre fichier id_dsa.pub situé dans le répertoire $HOME/.ssh/ de votre machine personnelle. Au cas où vous auriez lu et appliqué les commandes du document "ssh", vous n'avez rien à copier puisque la copie est déjà faite. Ensuite, signalez moi la disponibilité de ce fichier (ou sa mise à jour) par courriel, en précisant le nom de votre compte. Je ne prendrai pas en compte les clefs envoyées par courriel, par sécurité. Les contributeurs sans compte Unix ne peuvent pas jouer avec cvs sur le site. Ils peuvent utiliser cvs chez eux afin de se familiariser avec son fonctionnement et surtout commencer à travailler avec un système de versions. Le logiciel rcs est compatible avec cvs car il utilise le même format de fichier. Les contributeurs sans compte Unix peuvent en demander un à tout moment. CVS, la toute première fois

Il faut comprendre que l'accès au compte cvs permet de mettre à jour n'importe quelle partie du site lfo. Le premier "checkout" consiste à récupérer tout ce qui est sous CVS sur le site. Cela peut être assez long. Les fois suivantes seront plus courtes car seules les fichiers modifiés seront récupérés. Vous n'êtes pas non plus obligés de tout récupérer, cf rubrique "Questions/Réponses" de ce document. Ensuite, libre à vous de modifier les fichiers, d'en ajouter d'autres et de mettre à jour la base CVS avec vos modifications. Vous n'êtes pas obligé de tout passer sous CVS et vous pouvez avoir quelques fichiers sous CVS et d'autres via votre compte (et ce dans le même répertoire sur votre machine). Vous pouvez faire votre premier "checkout" sans aucune crainte pour la base CVS situé sur le serveur lfo. Avec un checkout, il n'y a pas de modification du coté du serveur puisque c'est une simple recopie de la base CVS sur votre arborescence. Le danger vient seulement des commandes commit et import qui mettent à jour la base CVS du serveur avec les modifications faites sur votre machine. Cela doit être fait avec précaution. # vous êtes chez vous, pas sur lfo CVSROOT=:ext:cvs@linux-france.org:/home4/lf/cvs/ CVS_RSH=ssh export CVSROOT CVS_RSH # allez où bon vous semble pour travailler cd && mkdir cvs_work && cd cvs_work # récupération cvs checkout www.linux-france.org Exemple à suivre

Voici un exemple de mise à jour. Je vous conseille de le pratiquer afin de vous familiariser avec cvs. Le fichier blabla.html est dédié à cet apprentissage, vous pouvez y faire ce que vous voulez. Ensuite, vous pouvez utiliser les mêmes commandes pour mettre à jour un autre fichier. J'utilise un copier-coller pur de ces commandes régulièrement. Vous pouvez utiliser un copier-coller pur aussi. Faites-le en douceur la première fois. # vous êtes chez vous, pas sur lfo CVSROOT=:ext:cvs@linux-france.org:/home4/lf/cvs/ CVS_RSH=ssh export CVSROOT CVS_RSH cd && cd cvs_work # allez où bon vous semble pour travailler cd www.linux-france.org/ # Mise à jour de votre arborescence cvs -n update -d # voir cvs update -d # faire # Ajouter quelques mots avec votre éditeur favori vi blabla.html # Un commentaire utile cvs commit -m "test cvs par toto" blabla.html La base cvs permet de travailler à plusieurs sur les mêmes fichiers. Elle ne dispense pas d'informer des changements à l'équipe sur la liste mlfo. S'il apparait des conflits, cvs nous avertira, ils devront cependant être résolu "manuellement"; cvs n'est pas un magicien. Ajouter un répertoire dans la base

Créer d'abord le nouveau répertoire "dossier" dans votre arborescence de travail, puis informer la base cvs avec la commande suivante : mkdir dossier cvs add dossier Ajouter un (ou plusieurs) fichier dans la base

Créez d'abord votre fichier dans votre arborescence de travail, puis informez la base cvs avec la commande suivante. Fichiers textes (ascii) : cvs add fichier1 fichier2 # ... Fichiers binaires (image, son, exécutable...) : cvs add -kb fichier1 fichier2 # ... Les fichiers images, son, exécutables ne doivent pas être archivés en mode texte. Vous pouvez informer cvs a posteriori avec la commande : cvs admin -kb fichier1 fichier2 # ... Retirer un (ou plusieurs) fichier dans la base

Eliminez d'abord votre fichier dans votre arborescence de travail, puis informez la base cvs avec la commande suivante. cvs remove fichier1 fichier2 # ... cvs commit Retrouver une ancienne version de fichier

cvs log fichier.html # regarder les logs et les numéros de version. cvs update -r 1.18 fichier.html # récupérez la version 1.18 cp fichier.html fichier2.html # faites en une copie. cvs update -A fichier.html # libérez la contrainte. Passer de RCS à CVS

Le format interne utilisé par CVS pour stocker les différentes versions de chaque fichier est exactement le même que pour RCS. RCS stocke les fichiers dans le repertoire courant ou le sous-répertoire ./RCS/ alors que CVS le stocke dans la base sur le serveur. Il suffit donc d'ENLEVER tous les verrous et de copier le fichier ",v" tel quel dans l'arborescence de la base, à l'endroit désiré dans l'arborescence /home/lf/cvs/www.linux-france.org/[...] Synchronisation des horloges

Un accès en écriture dans une base cvs nécessite normalement une synchronisation des horloges de votre système avec celui qui détient la base. Cette synchronisation est parfaitement réalisé avec le protocole NTP (Network Time Protocol). Pour de plus amples informations, consultez le site Le logiciel xntp est peut-être déjà sur votre système. Dans le cas contraire, téléchargez et installez xntp3-5.93.tar.gz où une version ultérieure. Utilisez les serveurs de temps publiques secondaires. Voici une configuration possible: $ more /etc/ntp.conf server ntp.obspm.fr server ntp.univ-lyon1.fr server ntp.via.ecp.fr Avec cette synchronisation, votre babasse changera d''heure au 4ème top des horloges radiophoniques. Vous pouvez également réaliser cette synchronisation avec ntpdate. Recopie sur le site public

Cette mise à jour est automatique à chaque commit, via le compte cvs. Cela signifie qu'une fois le commit réalisé, la synchronisation sur le site public se fait à xh20 ou plus tôt si Questions/Réponses

Q: Comment ne récupérer qu'une portion du site R: cvs checkout www.linux-france.org/la/portion/qui/minteresse Q: Tout le site wlfo va t'il passer sous cvs ? R: A priori, non. Ne sont placés sous cvs que les fichiers nécessitant plusieurs intervenants. Passage sous CVS d'une documentation existante

Comme exemple, deux fichiers à mettre à jour, index.html netscape_fr.html. La destination publique est . Le fichier index.html sera renommé en presentation.html et index.html deviendra un lien symbolique. Il y a d'autres fichiers dans le répertoire. Seuls presentation.html et netscape_fr.html seront mis dans la bas CVS. Les autres sont des binaires. Nous traiterons l'archivage des binaires ultérieurement. # variables d'environnement CVSROOT=:ext:cvs@linux-france.org:/home4/lf/cvs/ CVS_RSH=ssh export CVSROOT CVS_RSH # allons au travail cd && cd cvs_work/www.linux-france.org # récupérons le travail des autres cvs -n update -d # voir cvs update -d # faire # Création des nouveaux répertoires # prj/i18n/netscape/ n'existent pas en local (ni dans la base CVS) mkdir -p prj/i18n/netscape/ cvs add prj cvs add prj/i18n cvs add prj/i18n/netscape # ajout des fichiers en local cp /where/the/files/are/before/index.html prj/i18n/netscape/ cp /where/the/files/are/before/netscape_fr.html prj/i18n/netscape/ cd prj/i18n/netscape/ # apparté: nenommage de index.html en presentation.html # un bon nommage est essentiel mv index.html presentation.html ln -s presentation.html index.html # Description du fichier cvs add -m "presentation et index netscape en francais" presentation.html # Description de la version cvs commit -m 'tel quel' presentation.html # idem cvs add -m "Details et contenu de netscape en francais" netscape_fr.html cvs commit -m "tel quel" netscape_fr.html # pas encore de différence cvs diff # nouvelles versions recus par email (dans /tmp/ par exemple) # elles remplacent les anciennes versions mv /tmp/index.html presentation.html mv /tmp/netscape_fr.html netscape_fr.html # differences cvs diff # mise à jour avec ajout de commentaires cvs commit CVS pour une rubrique seule

Vous pouvez utiliser le serveur lfo comme base de dépot. c'est possible si vous avez un compte Unix sur lfo. Vous pouvez créer une base dans votre arborescence et jouer avec. Avantages: aucun, sauf si vous utilisez plusieurs ordinateurs complètement indépendants pour contribuer ou si vous travailler à plusieurs sur une rubrique et que vous ne voulez pas étendre les droits d'écriture à l'ensemble des contributeurs ayant un compte Unix sur lfo. En résumé, help yourself. Liens utiles

. $Id: cvs.fr.m4,v 1.54 2004/03/18 00:01:51 gilles Exp gilles $ Historique de ce document

$Log: cvs.fr.m4,v $ Revision 1.54 2004/03/18 00:01:51 gilles § sur la liste de diffusion cvs. Revision 1.53 2004/03/17 04:26:51 gilles mkdir Revision 1.52 2003/10/27 01:26:39 gilles Eclaircissements Revision 1.51 2003/02/23 06:23:01 gilles Changement de titre "Premiers pas" -> "Exemple à suivre" Revision 1.50 2003/02/23 06:13:28 gilles Ajout section "Retrouver une ancienne version de fichier" Revision 1.49 2003/02/06 17:05:56 gilles Deplacement de la section "Historique de ce document" Revision 1.48 2003/02/06 16:57:33 gilles Ajout section "Passer de RCS à CVS". Revision 1.47 2002/10/09 23:27:15 gilles Extension de la section "Premiers pas et suivants" Revision 1.46 2002/09/26 22:28:22 gilles mis en commantaire du tag dans "Passage sous CVS d'une documentation existante" Revision 1.45 2002/09/12 02:33:43 gilles Ajout ci dans "retrait" Revision 1.44 2002/09/12 02:32:54 gilles Ajout section "retrait fichier" Revision 1.43 2002/07/27 10:29:29 gilles Ajout section "Ajouter un (ou plusieurs) fichier dans la base" Ajout section "Ajouter un répertoire dans la base" Revision 1.42 2002/07/27 07:23:42 gilles Ajout de la section "Historique de ce document"