# Utilisation de &CVS;

## Bases de &CVS;

&CVS; est le système de contrôle de révision auquel beaucoup de projets « open source » - dont &kde; — font appel. Il stocke tous les codes sources dans un emplacement central, appelé le référentiel. À partir du référentiel, les développeurs peuvent extraire une version actuelle du projet ou des instantanés de celui-ci à des moments arbitraires. Contrairement à certains autres systèmes de contrôle de révision, il n'est pas nécessaire de verrouiller les fichiers sur lesquels on veut travailler. Ainsi, le développement peut être extrêmement parallélisé.

Chaque fois qu'un développeur a terminé une tâche, il valide (« commits ») son code (accompagné d'un message de journal). &CVS; prend les travaux pour fusionner les changements effectués par plusieurs développeurs. Il peut naturellement arriver que des développeurs travaillent sur le même morceau de code, ce qui a pour conséquence un ensemble conflictuel de changements (en pratique, cela se produit rarement et c'est souvent le signe d'un manque de communication). Dans ce cas, &CVS; rejette une validation. Un fichier peut être validé uniquement après que tous les conflits ont été résolus.

Jusqu'ici, ce document s'est borné à une description des fonctionnalités de base de &CVS; qu'on est susceptible de rencontrer. Cependant, &CVS; a beaucoup plus de cordes à son arc : on peut maintenir plusieurs branches d'un projet (&pex; &kde; 1.1.2 et &kde; 2 étaient des branches de l'arborescence de développement de &kde;), fusionner des changements d'une branche à une autre, demander des différences entre révisions, l'historique de révision des fichiers, &etc;

&CVS; est implémenté sous la forme d'un système client-serveur. En tant qu'utilisateur, toute la communication avec le référentiel passe par le programme en ligne de commande &cvs;. Une interface utilisateur de niveau plus élevé est disponible grâce à des interfaces comme &cervisia; () ou TkCVS (). Dans &kdevelop;, seule une petite partie de la fonctionnalité de &cvs; qui est importante pour votre travail quotidien peut être utilisée directement.

Une bonne connaissance de base de l'utilisation de &CVS; est supposée. En particulier, vous devrez savoir comment extraire un projet donné du référentiel. Nous recommandons l'ouvrage « Open Source Development With &CVS; », par Karl Fogel, qui est distribué librement (sauf en ce qui concerne les chapitres non techniques). Consultez .

## Commandes &CVS; dans &kdevelop;

Dans les vues des fichiers, les éléments de menu contextuel suivants sont disponibles :

Ajouter au référentiel

  Prépare le fichier marqué pour son ajout au référentiel. Le fichier sera transféré au référentiel la prochaine fois que vous le validerez (ou le dossier qui le contient).

Supprimer du référentiel

  Prépare un fichier pour sa suppression du référentiel. Comme cette action supprime aussi le fichier sur le système de fichier local, soyez prudent en utilisant cette fonctionnalité !

Mettre à jour

  Exécute `cvs update` pour fusionner tout changement d'autres utilisateurs dans votre dossier de travail. Quand vous employez cet élément de menu sur un dossier, la mise à jour s'effectue récursivement, sauf si vous avez désactivé cette fonction dans le fichier de configuration `.cvsrc`.

Valider

  Exécute `cvs commit` pour envoyer tout changement effectué localement sur le référentiel. Notez que vous devriez faire une mise à jour auparavant. Sinon, si un autre utilisateur a validé ses propres changements avant, &CVS; risque de vous retourner un message d'erreur.

Toutes ces commandes sont invoquées en tant que sous-processus par &kdevelop;, sans autres options sur la ligne de commande ou variables d'environnement variables. Ce peut être un problème quand la connexion avec le serveur &CVS; passe par une connexion &ssh; et nécessite que vous saisissiez un mot de passe chaque fois que vous validez ou mettez à jour. C'est par exemple nécessaire quand votre projet est hébergé sur `sourceforge.net`. La FAQ de &CVS;/SSH que vous pouvez trouver dans la documentation de SourceForge décrit quelques contournements pour ce problème.

## Les coulisses

### Ce que &CVS; enregistre dans le dossier de travail

(... à écrire ...)