# Manuel de &cervisia;

Bernd
Gehrmann

    bernd@mail.berlios.de

&traducteurJoelleCornavin;

1999
2000
2001
2002
Bernd Gehrmann

Ce programme peut être distribué selon les termes de la Q Public License telle qu'elle est définie par Trolltech AS (Norvège) et figure dans le fichier LICENSE QPL inclus dans le conditionnement de ce fichier.

Ce programme est distribué dans l'espoir qu'il vous sera utile, mais SANS AUCUNE GARANTIE, sans même la garantie implicite d'une POSSIBILITÉ DE COMMERCIALISATION ou d'APTITUDE À UN OBJECTIF PARTICULIER.

&FDLNotice;
2002-06-30
2.00.00

&cervisia; fournit un affichage graphique de &CVS;.

KDE
kdesdk
Cervisia
CVS
contrôle de version
contrôle de révision

## Premiers pas

### Accès au référentiel

Dans cette section, nous partons du principe que vous utilisez &CVS; côté client uniquement. Cela signifie que quelqu'un (probablement l'administrateur du référentiel &CVS;) vous a fourni un compte sur le serveur et qu'il vous appartient d'extraire les modules depuis le référentiel pour pouvoir travailler avec ceux-ci.

&CVS; gère plusieurs méthodes d'accès au référentiel, qu'on peut classer de la manière suivante :

Local

  Le référentiel se présente sous la forme `/home/cvs` et il est simplement stocké dans un dossier accessible à partir de votre ordinateur. Il peut se trouver physiquement sur un disque monté via NFS, mais c'est un détail en dehors de notre propos. Si vous utilisez fréquemment un référentiel local en particulier, veillez à en informer &cervisia;.

  #### Ajout d'un référentiel local

  1. Ouvrez la boîte de dialogue Référentiels en choisissant Référentiel Référentiels....

  2. Appuyez sur le bouton Ajouter....

  3. Saisissez les détails sur le référentiel dans la boîte de dialogue qui s'affiche.

  4. Confirmez par un clic sur le bouton OK.

  À l'avenir, chaque fois que vous utiliserez &cervisia; pour extraire un nouveau module, &cervisia; affichera les référentiels que vous avez ajoutés ici.

rsh

  Le nom du référentiel se présente sous la forme `:ext:bernd@cvs.cervisia.sourceforge.net:/cvsroot/cervisia`.

  Cette méthode exige que vous disposiez d'un compte sur le serveur (dans ce cas, cvs.sourceforge.net) et que vous communiquiez à l'aide d'un interpréteur de commande distant. Pour ce faire, &CVS; utilise &rsh; par défaut. Toutefois, en raison de son manque de sécurité notoire, &rsh; s'est vu remplacé au profit de &ssh;.

  Si vous devez employer &ssh;, veillez à positionner la variable d'environnement $`CVS_RSH` sur &ssh; lors de l'utilisation du client `cvs`. &cervisia; le gère aisément.

  Ouvrez à nouveau la boîte de dialogue Référentiels et cliquez sur le bouton Ajouter.... Saisissez à présent le nom du référentiel sur la première ligne, et l'interpréteur de commande distant (&pex;, &ssh;) sur la seconde ligne. Si vous confirmez maintenant par un clic sur le bouton OK &cervisia;, mémorise ces paramètres.

  Notez que &cervisia; ne peut pas répondre aux requêtes de mots de passe possibles à partir du serveur. Assurez-vous qu'un nom de connexion (login) distant soit opérationnel sans exiger la saisie du mot de passe. Pour ce faire, la version standard de &rsh; crée par exemple un fichier `$`HOME`/.rhosts` comportant une liste d'hôtes de confiance (consultez la page de man &rsh;).

  Par ailleurs, &ssh; copie votre clef publique `$`HOME`/.ssh/identity.pub` sur le serveur. Dans ce cas, la clef ne doit pas être cryptée à l'aide d'un mot de passe supplémentaire (passphrase) (consultez la page de man de &ssh; et la FAQ SSH de &CVS; sur le site de SourceForge). Si vous avez un doute sur ces aspects, interrogez votre administrateur système.

pserver

  Le nom du référentiel se présente sous la forme `:pserver:gehrmab@cvs.kde.org:/home/kde`

  Cette méthode accède au serveur via un protocole spécial qui souffre d'une authentification relativement faible (`pserver` signifie authentification par mot de passe). Avant de pouvoir utiliser un tel serveur, vous devez vous connecter. Puisque &cervisia; ne gère pas directement cette opération, saisissez sur la ligne de commande

      %cvs -d :pserver:joe@cvs.kde.org:/home/kde login

  (naturellement, après y avoir substitué votre référentiel). &CVS; vous invite alors à saisir votre mot de passe et vérifie avec le serveur. Si le mot de passe correspond, le nom du référentiel, ainsi que le mot de passe (devenu quelque peu indéchiffrable), sera ajouté à la fin du fichier `$`HOME`/.cvspass`. Chaque fois que &CVS; accède au référentiel, il envoie silencieusement le mot de passe au serveur, de sorte que vous n'avez pas à vous en préoccuper une fois connecté. Du fait que quiconque connaissant votre mot de passe peut travailler avec le référentiel en votre nom (et même lui causer de graves dommages), vous avez tout intérêt à garder le `$`HOME`/.cvspass` secret et non lisible par d'autres personnes.

### Importation d'un module dans le référentiel

Dans cette section, nous abordons la manière d'intégrer un nouveau projet au référentiel &CVS;. Si vous souhaitez simplement travailler sur un projet existant déjà présent dans le référentiel, vous pouvez ignorer cette section.

#### Une copie d'écran de la boîte de dialogue d'importation de &cervisia;

Une copie d'écran de la boîte de dialogue d'importation de &cervisia;

La affiche la boîte de dialogue permettant d'importer un projet sous la forme d'un module. Après avoir rempli ce formulaire et confirmé par OK, utilisez la commande &CVS; suivante :

    cvs -d référentiel import -m "" module marqueurdecréation marqueurdediffusion

Le nom du référentiel &CVS;, également appelé $`CVSROOT`. Vous devez disposer d'un accès en écriture au référentiel, lequel doit être correctement initialisé. Si celui-ci n'existe pas encore, initialisez-le à l'aide de la commande ``cvs` `-d` référentiel `init``.

S'il s'agit d'un référentiel distant, assurez-vous que l'authentification fonctionne (voir ).

Le nom du module sous lequel le projet sera enregistré. Une fois importé, le projet peut être extrait sous ce nom. Consultez ) pour plus d'informations. Il s'agit également du nom du dossier correspondant dans le référentiel.

Le marqueur de création sert généralement au suivi de sources tierces. Choisissez simplement votre nom d'utilisateur si vous n'avez pas de meilleure idée. Le contenu de la saisie n'a ici aucune importance.

On emploie également souvent ce marqueur pour importer différentes versions de logiciels tiers complémentaires. Si vous n'en importez pas, utilisez le mot `start` ou une chaîne `FOO_1_0` où `FOO` est le nom de votre projet et `1.0` correspond au numéro de version de la version importée.

#### Dossier de travail

C'est le dossier de plus haut niveau du projet que vous désirez importer. L'importation commence à partir de ce dossier et continue récursivement.

#### Omission de fichiers

Si vous remplissez ce champ, une option `-I noms_de_fichiers` supplémentaire est fournie à la commande `cvs import`. Cet élément est interprété comme une liste de modèles de noms séparés par une espace, qui seront ignorés. En règle générale, un moyen de contrôle plus précis et plus fiable des fichiers à intégrer au référentiel consiste à créer un dossier contenant uniquement les fichers que vous voulez importer et à démarrer à partir de celui-ci. Néanmoins, cet élément peut s'avérer utile si le projet contient des fichiers que &CVS; ignore par défaut, par exemple les fichiers appelés `core`. Dans ce cas, saisissez simplement le caractère `!` dans ce champ, de façon à annuler le modèle de &CVS; des fichiers ignorés. Consultez .

#### Importation sous forme de binaires

Si vous cochez cette case, tous les fichiers sont importés en mode binaire. Cela signifie qu'un argument `kb` est spécifié à `cvs`.

### Extraction d'un module du référentiel

Avant de travailler sur un projet soumis au contrôle de révision, vous devez extraire une copie de travail.

#### Une copie d'écran de la boîte de dialogue d'extraction de &cervisia;

Une copie d'écran de la boîte de dialogue d'extraction de &cervisia;

#### Référentiel

Le nom du référentiel &CVS;, également appelé ``$CVSROOT``. Si le référentiel est distant, assurez-vous que l'authentification fonctionne. Consultez .

#### Module

Le nom du module à extraire. Si vous travaillez avec un référentiel existant, vous avez probablement obtenu ce nom de l'administrateur. En revanche, si le référentiel comporte un fichier ``$CVSROOT`/modules`, vous pouvez récupérer une liste des modules disponibles en cliquant sur le bouton Récupérer la liste.

#### Dossier de travail

Le dossier dans lequel le module doit être extrait. Notez que le dossier de plus haut niveau de la copie de travail est toujours créé sous le même nom que celui du module placé dans le dossier indiqué ici.

### L'écran principal

Lorsque vous démarrez &cervisia; et que vous ouvrez une copie de travail en choisissant Fichier Ouvrir..., vous obtenez un affichage hiérarchique du dossier actuel. En fonction des paramètres de vos fichiers `.cvsignore`, les fichiers que vous ne souhaitez d'ordinaire pas intégrer au référentiel - comme les fichiers d'objet - ne sont pas présentés. En revanche, vous disposez pour chaque fichier, d'un affichage de son état correspondant. Dans le paramètre par défaut, il s'agit de Inconnu car &cervisia; retarde la récupération des informations jusqu'à ce que vous choisissiez Mettre à jour ou État dans le menu Fichier. Cette approche fournit un ensemble minimal de fonctionnalité accessible même si vous ne disposez pas d'une connexion permanente au serveur &CVS;.

#### Une copie d'écran de la fenêtre principale de &cervisia;

Une copie d'écran de la fenêtre principale de &cervisia;

Les commandes du menu Fichier agissent d'ordinaire uniquement sur les fichiers que vous avez mis en surbrillance. Vous pouvez également mettre des dossiers en surbrillance. À présent, choisissez Mettre à jour dans le menu Fichier. &cervisia; émet une commande

    cvs update -n noms_de_fichiers

pour obtenir les informations d'état des fichiers en surbrillance. Notez que &cervisia; n'examine récursivement les sous-dossiers que si vous avez défini l'option correspondante dans le menu Paramètres. Selon les états particuliers du fichier, un élément apparaît à présent dans la colonne État :

- Modifié localement - Cela signifie que vous avez modifié le fichier en le comparant à la version présente dans le référentiel.

- Ajouté localement - Cela signifie que le fichier n'existe pas dans le référentiel, mais dans votre dossier de travail et que vous avez programmé son ajout. L'insertion proprement dite dans le référentiel n'a lieu qu'après validation (commit).

- Supprimé localement - Cela signifie que vous avez programmé la suppression du fichier, mais qu'il existe toujours dans le référentiel. La suppression proprement dite n'a lieu qu'après validation.

- Nécessite une mise à jour - Ce message s'affiche s'il existe une version plus récente du fichier dans le référentiel, par exemple, parce qu'un utilisateur a validé une modification. Veillez en règle générale à actualiser ce fichier pour disposer d'une version à jour dans votre dossier.

- Nécessite un correctif - Pour l'essentiel, ce message est identique au précédent. Seule différence, vous êtes averti qu'en cas de mise à jour, le serveur &CVS; ne vous transfère qu'un correctif au lieu du fichier entier.

- Nécessite une fusion - Indique la nécessité d'une fusion de la révision de ce fichier dans votre dossier de travail et de sa version dans le référentiel. Ceci se produit généralement si vous avez apporté des modifications à ce fichier alors qu'un autre utilisateur a validé les siennes. Si vous choisissez la mise à jour, les modifications effectuées dans le référentiel sont fusionnées dans votre fichier. En cas de conflit (c'est-à-dire, si quelqu'un d'autre a changé les même lignes que vous), le nouvel état est alors Conflit.

- À jour - Indique que le fichier est identique à la version présente dans le référentiel.

- Conflit - Ce message s'affiche si ce fichier contient encore des indicateurs de conflit. Peut-être n'avez-vous pas actualisé le fichier précédemment ni résolu les conflits.

- Pas dans CVS - Indique que ce fichier n'est pas enregistré dans le référentiel &CVS;. Si vous souhaitez le rendre accessible à d'autres utilisateurs, vous devez l'ajouter au référentiel. Dans le cas contraire, vous pouvez envisager de l'ajouter à votre fichier `.cvsignore`.

Après cette vue d'ensemble de l'état actuel du CVS, pensez à exécuter une mise à jour. Mettez quelques fichiers en surbrillance (ou la racine de l'arborescence du dossier équivalant à la mise en surbrillance de tous les fichiers de ce dossier). Choisissez à présent Mettre à jour dans le menu Fichier (vous pourrez naturellement l'avoir choisi au début de la session). Pour certains fichiers, l'état peut à présent changer. En principe, les fichiers comportant Nécessite un correctif ou Nécessite une mise à jour sont mis à jour. Voici par conséquent les nouveaux éléments possibles dans la colonne d'état :

- Mis à jour - Affiché si le fichier était mis à jour à partir du référentiel.

- Corrigé - Indique que le serveur &CVS; a émis un correctif pour ce fichier et qu'il a été appliqué avec succès. Si le correctif n'est pas satisfaisant en raison d'un conflit entre vos modifications et celles validées par quelqu'un d'autre dans le référentiel, vous obtenez maintenant l'état Conflit.

Peut-être avez-vous remarqué que la ligne du fichier présente une couleur diifférente en fonction de son état. Les couleurs sont choisies pour refléter en quelque sorte la priorité de l'état. Par exemple, un fichier conflictuel est signalé en rouge pour indiquer qu'il faut résoudre un conflit avant de pouvoir continuer à travailler avec. Si votre dossier contient un grand nombre de fichiers, vous risquez néanmoins de perdre la vue d'ensemble. Pour obtenir des informations plus concises sur les fichiers comportant un état inhabituel, cliquez simplement sur l'en-tête de la colonne État. La liste des fichiers étant alors triée par priorité, vous obtenez toutes les informations importantes en haut de la liste. Pour revenir à l'affichage trié par ordre alphabétique, cliquez sur l'en-tête de la colonne Nom du fichier.

## Manipulation des fichiers

Toutes les fonctions courantes de &CVS; sont utilisées directement dans la fenêtre principale de &cervisia;. Les commandes agissent d'ordinaire sur plusieurs fichiers à la fois, notamment tous ceux qui sont actuellement sélectionnés. Son interprétation dépend des paramètres fixés dans le menu Paramètres. Par exemple, si Paramètres Valider et supprimer récursivement est coché et si vous choisissez Fichier Valider... bien qu'un dossier soit sélectionné, tous les fichiers de l'arborescence placés dans ce dossier sont alors validés. Dans le cas contraire, seuls les fichiers réguliers du dossier proprement dit sont affectés.

Pour éditer un fichier, double-cliquez simplement sur celui-ci ou appuyez sur Entrée. L'éditeur configuré dans Paramètres Configurer Cervisia... démarre, le nom du fichier servant d'argument.

### Ajout de fichiers

L'ajout de fichier à un projet exige deux étapes : en premier lieu, les fichiers doivent être enregistrés dans &CVS;. Pour ce faire, mettez en surbrillance tous les fichiers à ajouter dans la fenêtre principale de &cervisia;. Choisissez ensuite Fichier Ajouter au référentiel. &cervisia; émet une commande

    cvs add noms_de_fichiers

Si l'opération a réussi, la colonne d'état devrait afficher Ajouté au référentiel à propos des fichiers ajoutés.

Pour placer les fichiers de façon réelle dans le référentiel, il faut les valider. Cette procédure a un avantage appréciable : vous pouvez valider les fichiers, ainsi que les modifications apportées à d'autres parties du projet. Ce faisant, on peut aisément voir (par exemple, dans les messages électroniques de validation) que tous ces changements font partie d'un tout.

&CVS; n'est pas conçu pour mettre en place un contrôle de révision satisfaisant des fichiers binaires. À titre d'exemple, la fusion de fichiers binaires ne présente aucun intérêt. De plus, &CVS; développe par défaut les mots-clés (&pex; sur la chaîne `&dollar;Revision: 1.6 &dollar;`) lorsqu'il valide un fichier. Dans les fichiers binaires, de tels remplacements peuvent corrompre le fichier et le rendre totalement inutilisable. Pour changer ce comportement, validez les fichiers binaires (ou d'autres fichiers comme PostScript) à l'aide d'une ligne de commande

    cvs add -kb noms_de_fichiers

Dans &cervisia; il suffit de choisir Fichier Ajouter sous forme de binaires...

### Suppression de fichiers

Tout comme l'ajout de fichiers, leur suppression s'exécute en deux étapes : en premier lieu, ils doivent avoir été enregistrés en tant que fichiers supprimés en choisissant Fichier Supprimer du référentiel qui émet la commande

    cvs remove -f noms_de_fichiers

Cette modification apportée à la copie locale doit ensuite être validée, éventuellement en même temps que d'autres modifications du projet.

La commande ci-dessus ne fonctionne que si le fichier est à jour. Dans le cas contraire, vous obtenez un message d'erreur. Ce comportement est rationnel : si vous avez modifié le fichier en le comparant à la version présente dans le référentiel ou si un autre utilisateur a apporté certaines modifications, vérifiez d'abord si vous souhaitez réellement l'éliminer.

### Ajout et suppression de dossiers

&CVS; gère les dossiers d'une manière fondamentalement différente des fichiers ordinaires. Comme ils ne sont pas soumis au contrôle de révision, vous ne pouvez pas distinguer les dossiers existants dans le projet à un moment donné. De plus, les dossiers ne peuvent jamais être explicitement supprimés (prévoyez de les supprimer directement dans le référentiel).

À titre de remplacement, &CVS; suit la convention selon laquelle un dossier est dit non existant dans une version du projet s'il est vide. Pour respecter cette convention, utilisez l'option `P` pour `cvs update` et `cvs checkout`. Vous pouvez définir cette option dans le menu Paramètres Élaguer les dossiers vides lors de la mise à jour.

Un dossier peut être ajouté au référentiel à l'aide de la commande

    cvs add nom_de_dossier

faisant partie de l'élément de menu Fichier Ajouter au référentiel. Notez que contrairement à l'ajout de fichiers, l'ajout de dossiers n'exige aucune validation ultérieure.

### Validation de fichiers

Lorsque vous avez apporté un certain nombre de changements à votre copie de travail et que vous souhaitez les mettre à la disposition d'autres développeurs, vous devez les valider (on parle de commit). Une validation place vos versions des fichiers modifiés dans le référentiel comme s'il s'agissait de nouvelles révisions. Lorsqu'un autre développeur effectue une mise à jour ultérieurement, vos modifications apparaissent dans sa copie de travail.

Pour valider deux fichiers, sélectionnez-les dans la fenêtre principale de &cervisia; et choisissez Fichier Valider....

#### Une copie d'écran de la boîte de dialogue de validation de &cervisia;

Vous obtenez une boîte de dialogue affichant dans sa partie supérieure une liste des fichiers sélectionnés et dans sa partie inférieure un message du journal indiquant vos changements. Lorsque vous avez terminé avec la boîte de dialogue, la commande

    cvs commit -m message noms_de_fichiers

est utilisée. &cervisia; vous aide de plusieurs manières à trouver un message de journal significatif : premièrement, dans la liste des fichiers, vous pouvez double-cliquer sur un fichier ou appuyer sur Entrée de façon à afficher les changements que vous avez apportés au fichier. Deuxièmement, &cervisia; fournit une liste des messages de journal précédemment utilisés dans une liste déroulante. Troisièmement, cette boîte de dialogue est intégrée à l'éditeur Changelog de &cervisia; décrit ci-après.

Le contrôle de la mise à jour a échoué est une erreur fréquente que vous êtes susceptible de rencontrer lors de la validation. Celle-ci indique qu'un utilisateur a validé des changements dans le référentiel depuis votre dernière mise à jour ou, plus techniquement, que votre révision `BASE` n'est pas la plus récente sur sa branche. Dans ce cas, &CVS; refuse de fusionner vos modifications dans le référentiel. La solution consiste à mettre à jour, résoudre les conflits et exécuter une nouvelle validation. Naturellement, si vous travaillez sur un projet de logiciel, il est de bon ton de vérifier si le programme fonctionne encore après l'avoir actualisé - somme toute, il pourrait exister des interactions néfastes entre vos modifications et les autres modifications qui cassent le code.

Une autre erreur courante provoque le message d'erreur Le marqueur rémanent "X" pour le fichier "X" n'est pas une branche. Ceci se produit si vous tentez de valider un fichier que vous avez précédemment placé dans une révision ou un marqueur particuliers à l'aide de la commande

    %cvs update -r X

(que l'élément de menu Avancé Mettre à jour vers le marqueur/à la date...) utilise &pex;. Dans un tel cas, le marqueur placé sur le fichier devient rémanent. Cela signifie que des mises à jour ultérieures ne vous placent pas dans la toute dernière révision de la branche. Si vous souhaitez valider d'autres révisions sur la branche, vous devez exécuter une mise à jour sur le marqueur de la branche avant de procéder à d'autres validations.

&cervisia; permet aisément de maintenir un fichier ChangeLog conforme au format énoncé dans les directives de codage GNU. Pour l'utiliser, choisissez Fichier Insérer l'élément ChangeLog.... Si un fichier nommé `ChangeLog` existe dans le dossier de plus haut niveau de votre copie locale, ce fichier est chargé et vous avez la possibilité de l'éditer. À cette fin, un élément comportant la date actuelle et votre nom d'utilisateur (configurable selon la description de ) est inséré en haut du fichier. Lorsque vous terminez ce dialogue en cliquant sur OK, la boîte de dialogue de validation que vous ouvrez ensuite comporte le message de journal défini lors de votre dernière saisie dans le change log.

### Résolution de conflits

Des conflits peuvent se produire chaque fois que vous avez apporté des changements à un fichier qui était également modifié par un autre développeur. Le conflit est détecté par &CVS; lorsque vous mettez à jour le fichier modifié. &CVS; tente alors de fusionner les modifications validées par l'autre développeur dans votre copie de travail. La fusion échoue si ses modifications et les vôtres se trouvent dans des portions du fichier qui se chevauchent et le serveur &CVS; émet un message d'erreur.

Il vous appartient à présent de résoudre ces conflits avant de valider le fichier. &CVS; refusera de valider tout fichier conflictuel jusqu'à ce qu'il ait été édité. Naturellement, vous bénéficiez d'une grande liberté pour résoudre plusieurs conflits : pour chacun, vous pouvez décider de choisir une des deux versions de remplacement. Vous pouvez également décider que les deux approches ont échoué et réécrire une routine entière ou le fichier complet ex nihilo.

Dans la fenêtre principale de &cervisia;, les fichiers conflictuels sont indiqués par Conflit en rouge dans la colonne d'état. Vous pouvez naturellement résoudre les conflits de manière traditionnelle à partir de la fenêtre principale : double-cliquez simplement dans le fichier concerné et éditez-le à l'aide de votre éditeur favori. Toutefois, vous pouvez également choisir d'utiliser la boîte de dialogue disponible via Fichier Résoudre....

#### Une copie d'écran de la boîte de dialogue de résolution de &cervisia;

Une copie d'écran de la boîte de dialogue de résolution de &cervisia;

Dans la partie supérieure da la boîte de dialogue, votre version du fichier s'affiche du côté gauche et la version du référentiel du côté droit. Les différences entre les deux sont signalées en rouge. Sous ces deux versions, vous pouvez voir la version fusionnée qui sera enregistrée après avoir cliqué sur le bouton Enregistrer.

Vous pouvez basculer entre les sections qui diffèrent en cliquant sur << et >>. Au milieu de la partie inférieure de la boîte de dialogue, s'affiche la section actuellement mise en surbrillance. Par exemple, `2 sur 8` signifie que vous êtes actuellement positionné sur la deuxième section présentant des différences, sur un total de 8. Vous pouvez maintenant décider section par section quelle est, des deux versions, celle que vous souhaitez fusionner dans le fichier. En cliquant sur A, vous choisissez la version que vous avez éditée. En cliquant sur B, vous choisissez la version du référentiel.

## Obtention d'informations sur les fichiers

### Exploration des journaux cvs

Lorsque vous mettez un fichier en surbrillance dans la fenêtre principale et que vous choisissez Explorer le journal dans le menu Affichage, une

    cvs log noms_de_fichiers

commande est émise et une boîte de dialogue reflétant l'historique de la version du fichier en surbrillance s'affiche.

#### Une copie d'écran de la boîte de dialogue Explorer les journaux de &cervisia;

Une copie d'écran de la boîte de dialogue Explorer les journaux de &cervisia;

Vous pouvez choisir d'afficher l'historique sous forme d'arborescence ou de liste. Votre préférence est naturellement affaire de goût et dépend des informations qui vous intéressent. L'arborescence est une représentation intuitive de ce que tel ou tel auteur a réalisé sur les différentes branches. Les messages de journal correspondants s'affichent sous forme d'infobulles. La liste est par nature linéaire et ne fournit donc pas un affichage immédiat des branches. En revanche, elle concentre différemment les informations pertinentes sur une surface d'écran moindre, notamment l'heure de chaque changement du fichier et la première partie du message du journal.

Pour obtenir des informations complémentaires sur une révision particulière, cliquez sur celle-ci dans la liste ou dans l'affichage arborescente. Les champs placés dans la partie centrale de la boîte de dialogue sont alors remplis à l'aide des informations complètes fournies par `cvs log`. Vous pouvez mettre deux révisions en surbrillance, appelées A et B qui sont pertinentes si vous utilisez des fonctions complémentaires prévues par les boutons. Vous pouvez choisir la révision A à l'aide du bouton gauche de la souris, la révision B avec celui du milieu. En mode liste, vous pouvez également naviguer avec les touches du curseur. Pour mettre en évidence les révisions A et B, utilisez les raccourcis clavier Ctrl A, Ctrl B, respectivement.

Si vous cliquez sur le bouton Annoter, vous obtenez une boîte de dialogue qui affiche le texte du fichier appartenant à la version identifiée par A. Chaque ligne est préfixée par les informations relatives à la personne qui les a éditées en dernier lieu et la révision au cours de laquelle ceci s'est produit.

Si vous cliquez sur le bouton Diff, un appel `cvs diff` est émis et vous obtenez une boîte de dialogue affichant toutes les modifications entre les deux versions mises en surbrillance. Pour mieux voir les changements, on utilise des couleurs différentes signalant les lignes ajoutées, supprimées ou simplement modifiées.

### Exploration de l'historique

Si la journalisation est activée sur le référentiel utilisé, &cervisia; peut vous présenter un historique de certains événements comme les extractions, les validations, les marqueurs de diffusion (rtags), les mises à jour et les diffusions. Choisissez Historique dans le menu Affichage. &cervisia; émet la commande

    cvs history -e -a

Cette commande récupère le fichier de journalisation complet du serveur, c'est-à-dire une liste des événements concernant tous les utilisateurs et tous les modules. Cela peut représenter une énorme quantité de données !

Vous pouvez à présent voir la liste des événements, triés par date. Le type de l'événement est affiché dans la deuxième colonne :

- Extraction - L'utilisateur affiché dans la colonne Auteur a extrait un module

- Marqueur Un utilisateur a employé la commande `cvs rtag`. Notez que l'usage de `cvs tag` (comme le fait la commande Avancé Marqueur/branche... de &cervisia;) n'est pas enregistrée dans la base de données des historiques. Ceci est dû à des raisons historiques (consultez la FAQ de &CVS;).

- Diffusion - Un utilisateur a diffusé un module. En réalité, cette commande est rarement utilisée et ne présente pas un grand intérêt.

- Mise à jour, supprimé - Un utilisateur a effectué une mise à jour sur un fichier qui était supprimé dans le référentiel. En conséquence, le fichier était supprimé dans sa copie de travail.

- Mise à jour, copié - Un utilisateur a effectué une mise à jour sur un fichier. Une nouvelle version était copiée dans le dossier de travail.

- Mise à jour, fusionné - Un utilisateur a effectué une mise à jour sur un fichier. Les modifications apportées à la version du référentiel dans le fichier étaient fusionnées dans sa copie de travail.

- Mise à jour, conflit - Un utilisateur a effectué une mise à jour sur un fichier et un conflit avec ses propres modifications était détecté.

- Validation, modifié - Un utilisateur a validé un ficher modifié.

- Validation, ajouté - Un utilisateur a ajouté un fichier et l'a validé.

- Validation, supprimé - Un utilisateur a supprimé un fichier et l'a validé.

#### Une copie d'écran de la boîte de dialogue d'historique de &cervisia;

Une copie d'écran de la boîte de dialogue d'historique de &cervisia;

Vous pouvez trier la liste à l'aide d'autres critères en cliquant simplement sur l'en-tête de colonne respectif. Pour trier les éléments d'historique qui vous intéressent, il existe différentes options de filtre activées au moyen de cases à cocher :

- Afficher les événements validation - affiche les validations

- Afficher les événements extraction - affiche les extractions

- Afficher les événements marqueur - affiche les marquages

- Afficher d'autres événements - affiche des événements non inclus ci-dessus

- Uniquement l'utilisateur - affiche uniquement les événements déclenchés par un utilisateur particulier

- Uniquement la correspondance des noms de fichiers - filtre les noms de fichiers à l'aide d'une expression rationnelle

- Uniquement la correspondance des noms de dossiers - filtre les noms de dossiers à l'aide d'une expression rationnelle

Les caractères spéciaux reconnus par le comparateur d'expressions rationnelles sont :

- `x*` correspond à un nombre quelconque d'occurrences du caractère `x`.

- `x+` correspond à une ou plusieurs occurrences du caractère `x`.

- `x?` correspond à zéro ou une occurrence du caractère `x`.

- `^` correspond au début de la chaîne.

- `$` correspond à la fin de la chaîne.

- `{a cx z]` correspond à un jeu de caractères : ici &pex;, le jeu consiste en a, b, c, x, y, z.

### Suivi des différences entre révisions

Il existe plusieurs endroits dans &cervisia; où vous pouvez demander à une fenêtre d'afficher les différences entre les révisions d'un fichier :

- Dans la fenêtre principale, vous pouvez choisir Affichage Différence par rapport au référentiel.... Celle-ci est basée sur la commande `cvs diff` et montre les différences entre la version de votre copie locale et la version que vous avez actualisée en dernier lieu (également appelée `BASE`). Ceci étant particulièrement utile juste avant de valider un fichier, essayez de trouver message de journal approprié.

- Dans la boîte de dialogue qui s'affiche lors de la validation d'un ensemble de fichiers, vous pouvez demander une fenêtre de différence en choisissant un nom de fichier dans la liste de sélection, soit en double-cliquant sur celui-ci, soit en appuyant sur Entrée. Celle-ci est pratiquement identique à l'utilisation de Affichage Différence par rapport au référentiel... avec le fichier indiqué dans la fenêtre principale.

- Dans la boîte de dialogue Explorer les journaux, vous pouvez mettre en surbrillance deux révisions d'un fichier et demander une boîte de dialogue montrant les différences entre elles (consultez la section ).

Comme vous le pressentiez, &cervisia; ne se contente pas de transférer le résultat de la commande `diff` dans votre terminal, et présente un affichage graphique comme le montre la .

#### Une copie d'écran de la boîte de dialogue Diff de &cervisia;

Une copie d'écran de la boîte de dialogue Diff de &cervisia;

Le texte contenu dans la boîte de dialogue est une variante améliorée du texte fourni par la commande diff avec l'option `u`. Vous pouvez voir les versions présentant des différences dans deux fenêtres disposées de telle sorte qu'il est possible d'établir une comparaison côte à côte. Cela signifie qu'aux endroits où l'on a ajouté ou supprimé du texte, la fenêtre respective affiche des lignes vides ainsi que l'indicateur `+++++` placé du côté gauche. Partout ailleurs, le numéro actuel de chaque ligne est visible dans la colonne de gauche.

Dans la deuxième colonne de la fenêtre de droite, le type de changement effectué apparaît. Les types possibles sont `Ajouter`, `Supprimer` et `Changer`. Les lignes respectives sont mises en surbrillance en bleu, vert et rouge. Au centre de la boîte de dialogue, une image compactée des indicateurs de couleur est affichée. Ainsi, vous pouvez obtenir un rapide aperçu de l'ensemble des changements apportés au fichier. Vous pouvez également vous orienter à l'aide de la position des régions colorées dans l'image compactée en vous servant des barres de défilement.

Normalement, les barres de défilement des fenêtres gauche et droite sont synchronisées. Cela signifie que si vous faites défiler le côté gauche, le côté droit défile au même ryhme. Vous pouvez changer ce comportement en cochant la case Synchroniser les barres de défilement.

Pour plus d'informations sur la manière de personnaliser la boîte de dialogue Diff, consultez .

### Observation de l'affichage annoté d'un fichier

Grâce à la commande `cvs annotate`, &CVS; offre la possibilité de voir - pour toutes les lignes d'un fichier - qui a modifié une ligne en tout dernier lieu. Cet affichage peut être utile pour découvrir qui a introduit un changement dans le comportement d'un programme ou à qui il convient de s'adresser à propos d'un changement ou d'un bogue dans le code.

&cervisia; vous donne accès à cette fonctionnalité, mais enregistre en outre les informations de manière interactive. Vous obtenez un affichage annoté en choisissant Affichage Annoté.... Une autre possibilité consiste à cliquer sur le bouton Annoter dans la boîte de dialogue Explorer le dialogue de journalisation. Vous pouvez voir une copie d'écran de la boîte de dialogue sur la.

#### Une copie d'écran de la boîte de dialogue Annoté de &cervisia;

Une copie d'écran de la boîte de dialogue Mettre à jour vers le marqueur de &cervisia;

Dans la boîte de dialogue Annoté, s'affiche une fenêtre comportant la version la plus récente du fichier sélectionné. Les colonnes placées avant le texte vous présentent quelques informations relatives au tout dernier changemenr de chaque ligne. La première colonne affiche le numéro de révision. La deuxième colonne montre le nom de l'auteur de cette révision. Pour terminer, la troisième colonne indique la date du changement le plus récemment effectué sur la ligne.

Par conséquent, lorsqu'une ligne vous paraît étrange ou que vous supposez un bogue à cet endroit, vous pouvez savoir immédiatement qui est responsable de cette ligne. Il est également possible de découvrir pourquoi cette ligne était modifiée. Pour ce faire, déplacez le curseur de la souris sur le numéro de révision indiqué. Une infobulle apparaît alors, qui affiche le message du journal ainsi que la date du changement.

## Utilisation avancée

### Marquage et branches

Nous n'aborderons ici que les aspects techniques du marquage et des branches. Si vous êtes uniquement utilisateur, et non l'administrateur du référentiel, vous ne serez probablement pas confronté au problème. Si toutefois vous êtes votre propre administrateur, vous devriez d'abord vous documenter sur les problèmes non techniques relatifs aux branches, pour vous rendre compte du temps et du risque d'erreur que la maintenance d'un projet peut exiger. L'annexe contient quelques références sur ce thème.

Le marquage simple est une opération que vous effectuez habituellement après réalisation d'une diffusion, pour pouvoir aisément revenir à l'état antérieurdu projet à ce moment. Les marqueurs se voient en principe attribuer un nom composé du nom du projet et de son numéro de version. Par exemple, &cervisia; 1.0 est disponible sous le marqueur `CERVISIA_1_0`. &cervisia; applique strictement les règles de &CVS; à propos des éléments constituant le nom de marqueur valable. Il doit commencer par une lettre et peut contenir des lettres, des chiffres, des traits d'union et des caractères de soulignement.

Vous marquerez normalement le projet entier (bien que &CVS; permette naturellement de n'en marquer qu'un sous-ensemble). Pour ce faire, mettez en surbrillance le dossier de plus haut niveau dans la fenêtre et choisissez Avancé Marqueur/branche. Saisissez à présent le nom du marqueur, appuyez sur Entrée et tout est terminé !

La création d'une branche n'est guère plus difficile : dans la boîte de dialogue du marqueur, cochez la case Créer une branche avec ce marqueur. Vous pouvez également supprimer un marqueur existant : choisissez Avancé Supprimer un marqueur dans la fenêtre principale.

Voici plusieurs manières d'exécuter une mise à jour vers un état particulier du projet :

- Vous pouvez effectuer une mise à jour vers un marqueur particulier. Utilisez Avancé Mettre à jour vers le marqueur/à la date pour ce faire. On utilise la même procédure pour la mise à jour vers une branche. &cervisia; émet la commande

      cvs update -r marqueur

- Vous pouvez effectuer une mise à jour à une date particulière. Cela peut s'avérer utile si une erreur s'était introduite dans le projet entre deux diffusions. Ainsi, vous savez approximativement entre lesquelles et vous avez une idée du moment où elle est s'est produite. Vous pouvez vous placer sur une date quelconque en choisissant Avancé Mettre à jour vers le marqueur/à la date et en cochant la case Mettre à jour à la date. Dans le champ situé au-dessous, vous pouvez saisir une grande diversité de formats de dates. Un format possible est `aaaa-mm-jj` où `aaaa` correspond à l'année, `mm` au mois (numériquement) et `jj` au jour. D'autres solutions comportent des phrases en français comme `hier` ou `il y a 2 semaines`. Si vous préférez cette option, &cervisia; utilise la commande

      cvs update -D date

- Les deux options ci-dessus créent un marqueur ou une date rémanent(e). Cela signifie que vous ne pouvez pas valider d'autres modifications sur ces fichiers (à moins que le marqueur ne soit un marqueur de branche). Pour revenir à la jonction, également appelée branche `HEAD`, utilisez l'élément de menu Avancé Mettre à jour vers HEAD. Il en résulte une commande

      cvs update A

#### Une copie d'écran de la boîte de dialogue Mettre à jour vers le marqueur de &cervisia;

Une copie d'écran de la boîte de dialogue Mettre à jour vers le marqueur de &cervisia;

La fusion de modifications d'une branche vers la branche actuelle constitue un autre aspect du concept des branches. Si vous projetez de l'exécuter, choisissez Avancé Fusionner.... La boîte de dialogue qui apparaît à présent vous offre deux options :

Vous pouvez soit fusionner toutes les modifications effectuées sur une branche vers la branche actuelle. Dans ce cas, cochez la case Fusionner à partir de la branche et remplissez la branche à partir de laquelle vous souhaitez effectuer la fusion. &cervisia; exécute alors la commande

    cvs update j marqueur_de_branche

L'autre possibilité consiste à fusionner uniquement les modifications effectuées entre deux marqueurs sur une branche. Ceci se produit habituellement lorsque vous fusionnez de la même branche vers la jonction plusieurs fois. Dans ce cas, cochez la case Fusionner les modifications et saisissez (dans l'ordre correct) les deux marqueurs correspondants. Il en resulte une commande

    cvs update -j marqueurdebranche1 -j marqueurdebranche2

### Utilisation des alertes

Une alerte est le nom conventionnel de la fonction de &CVS; prévue pour avertir les utilisateurs du référentiel dès qu'un fichier a été modifié. L'utilisation des alertes exige la configuration correcte du fichier ``$CVSROOT`/CVSROOT/notifiy` Cet aspect n'est pas abordé ici ; si vous avez besoin d'informations complémentaires sur la configuration côté administrateur, consultez un des ouvrages répertoriés dans l'annexe.

La prise en charge des alertes via &cervisia; concerne six éléments de menu.

Pour ajouter une alerte à un ou plusieurs fichiers, utilisez Avancé Ajouter une alerte.... La boîte de dialogue obtenue vous permet de choisir d'être averti de n'importe quel type d'événement que &CVS; prend en charge. Par exemple, si vous souhaitez être averti uniquement lors de la validation d'un fichier, cochez les cases Uniquement et Validations. Si vous désirez être averti de tout événement relatif aux fichiers en surbrillance, cochez la case Tous. Lorsque vous acceptez le dialogue, utilisez la ligne de commande

    cvs watch add -a commit noms_de_fichiers

ou une option similaire, en fonction des événements que vous choisissez de surveiller.

Lorsque plus aucun fichier ne vous intéresse, vous pouvez supprimer vos alertes en conséquence. Pour ce faire, utilisez Avancé Supprimer l'alerte.... La boîte de dialogue obtenue offre les mêmes options que le formulaire rempli lors de l'ajout de l'alerte. Lorsque vous confirmez ce dialogue, &cervisia; émet la commande

    cvs watch remove noms_de_fichiers

éventuellement avec une option `a` pour les événements choisis.

Pour terminer, vous pouvez obtenir une liste des utilisateurs surveillant deux fichiers. Choisissez Avancé Afficher les surveillances. L'utilisation de cet élément de menu provoque la commande

    cvs watchers noms_de_fichiers

Dans le scénario d'utilisation normale de &CVS;, chaque développeur travaille séparément dans la copie locale qu'il a extraite. Lorsqui'il veut modifier un fichier quelconque, il peut simplement l'ouvrir dans son éditeur et commencer à travailler dessus. Personne d'autre n'aura connaissance de ce travail jusqu'à sa validation.

Pour certains groupes de développeurs, ce n'est pas le modèle de coopération préféré. Ils veulent être avertis à propos des personnes qui travaillent sur un fichier dès qu'ils commencent à travailler dessus. Pour ce faire, &CVS; a prévu des commandes supplémentaires. Avant de démarrer l'édition d'un fichier, choisissez-le dans la fenêtre principale de &cervisia; et choisissez Avancé Éditer. Ceci exécute la commande

    cvs edit noms_de_fichiers

Cette commande émet une notification à quiconque a défini une alerte `edit` sur ce fichier. Elle vous enregistre également en tant qu'éditeur du fichier. Vous pouvez obtenir une liste de tous les éditeurs d'un fichier particulier à l'aide de Avancé Afficher les éditeurs. Ceci équivaut à saisir sur la ligne de commande

    cvs editors noms_de_fichiers

Une session d'édition se termine automatiquement lorsque vous validez le fichier affecté. À ce moment, une notification `unedit` est envoyée à toutes les personnes ayant enregistré une alerte particulière sur le fichier. Naturellement, vous ne voudrez parfois pas valider le fichier, mais interrompre la session d'édition et revenir à la version précédente du fichier. Pour ce faire, utilisez Avancé Annuler l'édition. Notez que &cervisia; ne vous demande aucune confirmation ! Cela signifie que si vous employez cet élément de menu, tout votre travail effectué depuis l'utilisation de Avancé Éditer sera perdu. &cervisia; utilise précisément la ligne de commande

    echo y | cvs unedit noms_de_fichiers

Jusqu'ici, nous n'avons abordé que le cas où les développeurs utilisent les éditions et les annulations de celles-ci volontairement. De plus, &CVS; prend en charge un modèle qui impose l'usage de ces commandes. Nous ne décrirons pas plus avant la commande chargée de basculer vers ce modèle, `cvs watch on`, car elle est surtout employée par l'administrateur du référentiel. Aspect toutefois important pour le développeur lorsque le projet impose des éditions, les copies de travail sont extraites en lecture seule. Cela signifie que vous ne pouvez pas éditer un fichier par défaut (à moins de faire usage d'astuces comme `chmod`). Le fichier est rendu inscriptible uniquement lorsque vous utilisez Avancé Éditer. Il redevient en lecture seule lorsque vous validez le fichier ou que vous utilisez Avancé Annuler l'édition.

L'interface d'édition de &cervisia; offre une aide pour les projets imposant des alertes, mais d'une manière différente. Si vous avez simplement démarré un éditeur avec un fichier en lecture seule par un double clic ou à l'aide de Fichier Éditer, vous ne pourrez pas enregistrer vos modifications ultérieurement. Il y a bien entendu une raison à cela : chaque fois que vous voulez modifier un fichier, veillez à exécuter `cvs edit` au préalable, afin que tous les utilisateurs surveillant le fichier soient avertis que vous travaillez dessus.

Dans un tel cas, il est souhaitable de cocher l'option Paramètres Exécuter "cvs edit" automatiquement si nécessaire. Désormais, chaque fois que vous éditez un fichier à l'aide d'un double clic, &cervisia; réalise un `cvs edit` avant l'exécution proprement dite de l'éditeur. Vous pouvez alors éditer votre fichier comme d'habitude. Votre travail terminé, validez vos fichiers : les fichiers validés sont à nouveau en lecture seule.

### Verrouillage

Le modèle de développement habituellement suivi lors de l'utilisation de &CVS; est appelé validations non réservées. Chaque développeur dispose de sa propre copie locale dans laquelle il peut éditer les fichiers selon son gré. Lors de l'utilisation des fonctionnalités d'alerte - comme `cvs edit` -, plusieurs développeurs peuvent travailler simultanément sur des fichiers. Les changements effectués par un autre développeur sont fusionnés dans la copie locale au moment de l'exécution d'une mise à jour.

D'autres systèmes de contrôle de révision - comme RCS et SourceSafe utilisent un modèle différent. Lorsqu'un développeur veut éditer un fichier, il doit le verrouiller. Un seul développeur à la fois peut verrouiller un fichier. Lorsqu'il a terminé l'édition, le verrou est libéré. D'une part, ce modèle ne génère jamais de conflit. D'autre part, deux développeurs ne peuvent pas travailler sur le même fichier en même temps, même lorsque leurs changements n'ont aucune influence réciproque. Ceci peut être un goulot d'étranglement. Nous n'allons pas étudier les bénéfices organisationnels des deux approches. Signalons néanmoins que même si &CVS; prend en charge le verrouillage, ce n'est pas le meilleur moyen de travailler avec. N'utilisez pas ces fonctionnalités à moins d'être sûr que votre chef de projet les autorise.

&cervisia; permet de verrouiller des fichiers de la manière suivante. Choisissez les fichers désirés dans la fenêtre principale. Choisissez ensuite Avancé Verrouiller. Ceci exécute la commande

    cvs admin -l noms_de_fichiers

L'effet inverse est obtenu en utilisant Avancé Déverrouiller. Ceci exécute la commande

    cvs admin -u noms_de_fichiers

## Personnalisation de &cervisia;

Vous pouvez personnaliser &cervisia; de diverses manières selon vos besoins et vos préférences. Certaines options que vous pourriez être amené à changer régulièrement sont directement accessibles dans le menu Option. D'autres sont réunies dans une boîte de dialogue commune accessible via Option Paramètres....

### Général

#### Nom d'utilisateur pour l'éditeur ChangeLog

Chaque fois que vous utilisez l'élément de menu Fichier Insérer l'élément ChangeLog..., un nouvel élément ChangeLog est généré avec la date actuelle et votre nom d'utilisateur. En prinicipe, il est de bon ton d'insérer votre nom complet et votre adresse électronique dans chacun de vos éléments ChangeLog. Vous pouvez configurer ici ce comportement.

#### Chemin vers CVS

Configurez ici le nom (ou le chemin) vers le client en ligne de commande `cvs`. Par défaut, &cervisia; utilise l'exécutable qu'il trouve dans votre `$PATH`.

#### Éditeur

Vous pouvez ici configurer l'éditeur qui sera appelé lorsqu'un fichier placé dans la fenêtre principale fait l'objet d'un double clic. Pour exécuter l'éditeur, la saisie effectuée ici est concaténée avec le nom du fichier et transmise à un interpréteur de commandes. L'utilisation de programmes comme `gnuclient` y est donc admise. Vous pouvez également saisir ici la chaîne `$EDITOR` si votre variable d'environnement `$EDITOR` pointe sur un éditeur ouvrant une fenêtre X11 proprement dite.

### Commandes diverses

#### Nombre de lignes de contexte dans la boîte de dialogue Diff

La boîte de dialogue Diff de &cervisia; utilise l'option `U` pour `diff`. Ceci permet à `diff` d'afficher un nombre limité de lignes autour de chaque zone de différence. Vous pouvez ici définir l'argument vers `U`.

#### Options additionnelles pour cvs diff

Vous pouvez ajouter ici des arguments supplémentaires à `diff`. Citons l'exemple connu, `-b`, qui permet à `diff` d'ignorer les changements dans l'ensemble des blancs.

#### Largeur d'une tabulation dans la boîte de dialogue Diff

Dans la boîte de dialogue Diff, les tabulations présentes dans votre fichier ou dans la sortie de la commande `diff` sont rendues par un nombre fixe de caractères d'espacement. Par défaut, chaque tabulation est remplacée par huit espaces, mais vous pouvez définir ici un autre nombre.

#### Interface Diff externe

Lors de l'utilisation de l'une des fonctionnalités affichant la boîte de dialogue Diff, comme Affichage Différence par rapport au référentiel..., &cervisia; exécute son interface Diff interne. Si vous en préférez une autre, comme Kompare, TkDiff ou xxdiff, configurez ici ce comportement.

#### Démarrer Fichier État automatiquement

Lorsque vous cochez cette option, la commande Fichier État est démarrée chaque fois que vous ouvrez une copie locale. Du fait que cette commande peut exiger un certain temps et nécessite également une connexion au serveur pour les référentiels distants (ce qui la rend impropre à une utilisation hors connexion), vous pouvez définir cette option séparément pour les référentiels locaux et distants.

#### Délai après lequel apparaît une boîte de dialogue de progression

Presque toutes les commandes de &CVS; démarrées dans une copie locale appartenant à un référentiel distant exigent une connexion au serveur. Celui-ci est influencé par des retards provenant de la connexion réseau ou par une charge élevée sur le serveur. C'est pourquoi, pour les commandes comme Affichage Différence par rapport au référentiel..., &cervisia; ouvre une boîte de dialogue indiquant que la commande s'exécute encore et vous permet de l'interrompre. De plus, ce dialogue sert à afficher vos messages d'erreur dans &CVS;. Comme il peut devenir ennuyeux au bout d'un certain temps, il n'est affiché qu'après un délai donné fixé à 4 secondes par défaut. Vous pouvez changer ici cette valeur.

#### Niveau de compactage par défaut

Le client `cvs` compacte les fichiers et les correctifs lors de leur transfert sur un réseau. Le niveau de compactage peut être défini à l'aide de l'option en ligne de commande `-z`. La mise au point de &cervisia; permet l'utilisation de cette option en configurant ici le niveau.. La valeur définie ici n'est utilisée que par défaut. Il existe un paramètre supplémentaire disponible dans Référentiel Référentiels....

### Apparence et egonomie

#### Scinder la fenêtre principale horizontalement

La fenêtre principale de &cervisia; est normalement scindée verticalement en une fenêtre qui présente l'arborescence des fichiers et une qui affiche la sortie. À l'inverse, vous pouvez les organiser horizontalement.

#### Police pour la fenêtre de protocole

Il s'agit de la police utilisée dans la fenêtre de protocole, celle qui affiche la sortie du client `cvs`.

#### Police pour l'affichage annoté

Il s'agit de la police utilisée dans l'affichage annoté.

#### Police pour l'affichage Diff

Il s'agit de la police utilisée dans les boîtes de dialogue Diff.

## Annexe

### Fichiers ignorés

Dans son arborescence de fichiers principale, &cervisia; n'affiche pas tous les fichiers réellement présents. Celle-ci est similaire à `cvs` proprement dit et permet d'éviter l'encombrement causé par des éléments inintéressants comme les fichiers d'objet. &cervisia; tente d'imiter le comportement de `cvs` d'aussi près que possible. Cela signifie qu'il ignore les listes provenant des sources suivantes :

- Une liste statique des éléments comportant des éléments comme `*.o` et `core`. Pour plus de détails, consultez la documentation de &CVS;.

- Le fichier ``$HOME`/.cvsignore`.

- La variable d'environnement `$CVSIGNORE`.

- Le fichier `.cvsignore` dans le dossier correspondant.

`cvs` lui-même consulte en outre les éléments dans ``$CVSROOT`/CVSROOT/cvsignore`, mais c'est un fichier placé sur le serveur et &cervisia; devrait être capable de démarrer hors connexion. Si vous travaillez avec un groupe qui préfère utiliser une liste d'omission sur le serveur, il serait certainement judicieux d'examiner les modèles qui y sont répertoriés et de les placer dans le fichier `.cvsignore` dans votre répertoire utilisateur (/home).

### Informations complémentaires et support

- &CVS; est livré avec un ensemble de documentation complet sous forme de pages d'infos, appelé Le Cederqvist. S'il est correctement installé, vous pouvez l'explorer en saisissant `info:/cvs` dans la barre de saisie de kdehelp, khelp, respectivement. À l'inverse, vous pouvez simplement choisir Aide Infos CVS dans &cervisia;. Une version HTML en ligne du Cederqvist est disponible sur l'Internet.

  Comme ce document est maintenu avec &CVS;, il s'agit normalement de la référence la mieux actualisée. Néanmoins, je recommande de consulter d'autres documentations pour l'apprentissage de l'utilisation de &CVS;, en particulier celles qui suivent.

- Karl Fogel a écrit l'excellent ouvrage Développement Open Source avec CVS. La moitié environ de ce document traite du processus de développement de logiciels Open Source. L'autre moitié est consacrée à une documentation technique de &CVS;. Heureusement, la partie technique de l'ouvrage a été rendue librement redistribuable sous la GPL, de sorte que vous pouvez en télécharger une version HTML. Une liste d'errata est disponible sur la page Internet mentionnée précédemment.

- Les problèmes de &CVS; sont abordés sur une liste de discussion dédiée.

- Il existe un groupe USENET `comp.software.config-mgmt` consacré à la gestion de la configuration en général. &CVS; est un thème assez peu traité dans ce groupe, mais il peut néanmoins être intéressant d'étudier les mérites de divers systèmes de contrôle de révision comparés à &CVS;.

- Enfin et surtout, il existe une liste de discussion &cervisia; (faible trafic).

### Référence des commandes

#### Le menu Fichier

Fichier >Ouvrir...

  Ouvre une copie locale dans la fenêtre principale.

Fichier Récemment ouvert(s)...

  Ouvre une des copies locales récemment utilisées.

Fichier Insérer l'élément ChangeLog...

  Ouvre l'éditeur ChangeLog, organisé de telle façon que vous puissiez ajouter un nouvel élément comportant la date actuelle.

&Ctrl;U Fichier Mettre à jour

  Exécute cvs update sur les fichers sélectionnés et change l'état ainsi que les numéros de révision en conséquence dans le listage.

F5 Fichier État

  Exécute cvs -n update sur les fichiers sélectionnés et change l'état ainsi que les numéros de révision en conséquence dans le listage.

Fichier Éditer

  Ouvre le fichier sélectionné dans votre éditeur.

Fichier Résoudre...

  Ouvre une boîte de dialogue pour le ficher sélectionné permettant de résoudre les conflits de fusion qu'il présente.

# Fichier Valider...

  Permet de valider les fichiers sélectionnés.

+ Fichier Ajouter au référentiel...

  Permet d'ajouter les fichiers sélectionnés au référentiel.

Fichier Ajouter un binaire...

  Permet d'ajouter les fichiers sélectionnés au référentiel sous forme de binaires (`cvs add`-kb``).

- Fichier Supprimer du référentiel...

  Permet de supprimer les fichiers sélectionnés du référentiel.

Fichier Annuler

  Annule tout changement effectué localement dans les fichiers sélectionnés et revient à la version présente dans le référentiel (option `-C` à `cvs update`).

&Ctrl;Q Fichier Quitter

  Quitte &cervisia;.

#### Le menu Affichage

Échap Affichage Arrêt

  Interrompt tout sous-processus en cours d'exécution.

&Ctrl;L Affichage Explorer le journal...

  Affiche l'arborescence de révision du fichier sélectionné.

&Ctrl;A View Annoter...

  Présente un affichage annoté du fichier sélectionné. Il s'agit d'un affichage montrant la toute dernière modification de chaque auteur.

&Ctrl;D View Différence par rapport au référentiel...

  Affiche les différences entre le fichier sélectionné dans la copie locale et la révision que vous avez actualisée en dernier lieu (BASE).

Affichage Dernier changement...

  Affiche les différences entre la révision du fichier sélectionné que vous avez actualisé en dernier lieu (BASE) et la révision précédente.

Affichage Historique...

  Affiche l'historique de &CVS; tel que le serveur le présente.

Affichage Développer l'arborescence de fichiers

  Ouvre toutes les branches de l'arborescence des fichiers de façon que vous puissiez voir la totalité des fichiers et des dossiers.

Affichage Réduire l'arborescence des fichiers

  Ferme toutes les branches de l'arborescence des fichiers.

#### Le menu Avancé

Avancé Marqueur/branche...

  Place un marqueur ou une branche sur les fichiers sélectionnés.

Avancé Supprimer un marqueur...

  Supprime un marqueur donné à partir des fichiers sélectionnés.

Avancé Mettre à jour vers le marqueur/à la date...

  Positionne les fichiers sélectionnés sur un marqueur ou une date donné(e), le(la) rendant rémanent(e).

Avancé Mettre à jour vers HEAD...

  Positionne les fichiers sélectionnés sur la révision HEAD respective.

Avancé Fusionner...

  Fusionne soit une branche donnée, soit les modifications entre deux marqueurs dans les fichiers sélectionnés.

Avancé Ajouter une alerte...

  Ajoute une alerte pour un ensemble d'événements sur les fichiers sélectionnés.

Avancé Supprimer une alerte...

  Supprime une alerte pour un ensemble d'événements sur les fichiers sélectionnés.

Avancé Afficher les surveillances

  Répertorie les surveillances des fichiers sélectionnés.

Avancé Éditer

  Exécute `cvs edit` sur les fichiers sélectionnés.

Avancé Annuler l'édition

  Exécute `cvs unedit` sur les fichiers sélectionnés.

Avancé Afficher les éditeurs

  Exécute `cvs editors` sur les fichiers sélectionnés.

Avancé Verrouiller

  Verrouille les fichiers sélectionnés.

Avancé Déverrouiller

  Déverrouille les fichiers sélectionnés.

Avancé Créer un correctif par rapport au référentiel...

  Crée un correctif à partir des modifications contenues dans votre copie locale.

#### Le menu Référentiel

Référentiel Extraire...

  Ouvre une boîte de dialogue permettant d'extraire un module d'un référentiel.

Référentiel Importer...

  Ouvre une boîte de dialogue permettant d'importer un paquetage dans le référentiel.

Référentiel Référentiels...

  Configure une liste de référentiels fréquemment utilisés et la manière d'accéder à ceux-ci.

#### Le menu Paramètres

Paramètres Configurer les raccourcis...

  Ouvre une boîte de dialogue pour configurer les raccourcis clavier.

Paramètres Configurer Cervisia...

  Ouvre une boîte de dialogue pour personnaliser &cervisia;.

Paramètres Créer des dossiers lors de la mise à jour

  Détermine si les mises à jour créent des dossiers qui n'étaient pas présents auparavant dans la copie locale(option `-d` à `cvs update`).

Paramètres Élaguer les dossiers vides lors de la mise à jour

  Détermine si les mises à jour suppriment les dossiers vides dans la copie locale. (option `-P` à `cvs update`).

Paramètres Mettre à jour récursivement

  Détermine si les mises à jour sont récursives (option `-r` à `cvs update`).

Paramètres Valider et supprimer récursivement

  Détermine si les validations et les suppressions sont récursives (option `-r` à `cvs add`, `cvs remove` respectivement).

Paramètres Exécuter "cvs edit" automatiquement si nécessaire

  Détermine si `cvs edit` est exécuté automatiquement lors de chaque édition d'un fichier.

#### Le menu d'aide

F1 Aide Manuel de Cervisia

  Exécute le système d'aide de KDE démarrant les pages d'aide de &cervisia; (ce document).

Aide Signaler le bogue...

  Ouvre la boîte de dialogue de rapport de bogue.

Aide À propos de &cervisia;

  Ceci affiche les informations sur la version et l'auteur.

Aide À propos de KDE

  Ceci affiche la version de KDE et d'autres informations générales.

Help Manuel de CVS

  Ouvre les pages d'infos de &CVS; dans le Centre d'aide de KDE.

## Remerciements et licences

&underFDL;