Petit Guide CVS (Ancien)

Ce petit guide donne un bref aperçu des commandes et détails de configuration nécessaires à l'utilisation de comptes CVS sur un serveur Csoft.net. On assume que vous êtes familier avec le shell Unix.

Création des comptes CVS

Les nouveaux comptes CVS peuvent êtres créés via l'Interface Web, ou avec la commande cvs add de l'Interface Shell:

  csoftadm> cvs add mycvsuser1
  csoftadm> cvs add mycvsuser2

Optionellement, vous pouvez attribuer des clefs publiques SSH à chaque compte CVS à l'aide des commandes cvs pubkey (ou depuis l'Interface Web, cliquez sur l'utilisateur CVS en question). Les clefs publiques sont utiles pour l'authentification sans mot de passe.

  csoftadm> cvs pubkey add mycvsuser1
  csoftadm> cvs pubkey list mycvsuser1
Création d'un groupe Unix

CVS utilise les simples modes de permissions Unix pour gérer l'accès sur les dépots (si une gestion de l'accès plus complexe est nécessaire, il est recommandé d'utiliser SVN).

Nous allons créer un nouveau groupe Unix pour définir un ensemble d'utilisateurs avec accès en lecture et écriture sur le nouveau dépot. Il est important d'ajouter votre nom d'utilisateur principal au groupe.

  csoftadm> group add mycvsgroup
  csoftadm> group user-add mycvsgroup myself
  csoftadm> group user-add mycvsgroup mycvsuser1
  csoftadm> group user-add mycvsgroup mycvsuser2

Après avoir créé le nouveau groupe, assurez-vous de vous déconnecter de votre session shell existante, et reconnectez-vous ensuite (sinon la prochaine commande chgrp ne fonctionnera pas).

L'initialisation du dépot CVS

Depuis votre shell, utilisez la commande cvs init pour initialiser un nouveau dépot CVS, et attribuez les permissions correctes au répertoire ainsi créé.

  $ export CVSROOT="/home/myself/MyCVS"
  $ cvs -d $CVSROOT init
  $ chgrp -R mycvsgroup $CVSROOT
  $ chmod 770 $CVSROOT
Connexions distantes

Maintenant que votre dépot CVS est initialisé, vous pouvez vous connecter avec un logiciel de client CVS distant. En assumant que vous utilisez le client cvs traditionnel:

  $ export CVSROOT="mycvsuser1@myhost.csoft.net:/home/myname/cvs"
  $ export CVS_RSH=ssh
  
  $ mkdir test
  $ cd test
  $ cvs import -m "Test" test mycvsuser1 start

Dans l'exemple précédent, substituez mycvsuser1 pour le nom du compte CVS que vous voulez utiliser. Aussi, changez myhost pour le nom du serveur csoft.net assigné à votre compte (si vous possédez un compte Budget au minimum, il est possible d'utiliser votre propre domaine également). Le paramètre CVSROOT est enregistré avec votre copie locale. Il est inutile de le respécifier après un checkout.

Quelques exemples de CVS par ligne de commande

Voici quelques exemples d'opérations communes qui peuvent être exécutées à l'aide du client traditionnel CVS.

La création de répertoire et l'ajout de fichiers

Pour créer un répertoire nommé html sur le serveur et y ajouter un fichier nommé new.html, exécutez -

  $ cd ~/
  $ mkdir html
  $ cp new.html html
  $ cd html
    $ cvs import -m "Mon site web" html mycvsuser start

Les commandes précédentes créent un répertoire, html et générent une version cvs de new.html dans /home/myname/cvs. La valeur exacte des paramètres vendor-tag (ici «mycvsuser») et release-tag (ici «start») n'est pas importante dans la plupart des cas.

L'opération précédente aurait aussi pu être effectuée à l'aide de la commande import.

Pour confirmer l'existence du répertoire et fichier sur le dépot, téléchargez les, après avoir enlevé la copie locale du répertoire html -

  $ cd ~/
  $ rm -rf html
  $ cvs checkout html

La suppression de fichiers

Pour supprimer un fichier, utilisez la commande remove. Tout comme avec add, la commande devient effective seulement après un commit. Le flag d'option -R supprime récursivement l'ensemble d'un répertoire et de son contenu. Pour effacer new.html, vous exécuteriez -

  $ cd ~/html
  $ cvs remove -f new.html
  $ cvs commit new.html

Le transfert de contenu binaire

Le transfert d'un fichier binaire au serveur nécessite une attention particulière pour éviter la substitution des «tags» RCS. Pour importer un fichier de type binaire, spécifiez le flag d'option -kb avec la commande add. Pour importer un fichier binaire nommé image.jpg sur le dépot, vous exécuteriez -

  $ cd ~/html
  $ cvs add -kb image.jpg
  $ cvs commit image.jpg

L'affichage de différences

Les différences entre les revisions peuvent être visualisées avec la commande diff -

  $ cvs diff foo.txt
  $ cvs diff -r1.2 -r1.3 foo.txt

L'affichage de l'historique

Pour voir l'historique de revision des fichiers inclus dans le dépot, utilisez la commande log -

  $ cvs log foo.txt

Le fichier de préférences ~/.cvsrc

Des arguments par défaut pour les commandes cvs peuvent être spécifiés dans le fichier ~/.cvsrc. Par exemple -

    # Utiliser la compression de niveau 3
  cvs -z3

    # Créer nouveaux répertoires, enlever ceux qui sont vides.
  update -dP

    # Supprimer les répertoires vides.
  checkout -P

    # Format de diff unifié, inclure fichiers ajoutés/supprimés
  diff -uN
En cas de problèmes

Si l'erreur « can't getwd » apparait lorsque vous utilisez commit ou checkout, vérifiez que le compte CVS possède bien les permissions d'exécution (+x) et de lecture (+r) sur tous les répertoire parents du répertoire du dépot.

Liens

Pour acquérir une compétence de base avec CVS, référez vous au FAQ.


Csoft.net
Non à l'IA! © 2026 Communications CubeSoft