CVS est adapté à la synchronisation s'il s'agit de fichiers individuels fréquemment modifiés et dont le format est un format de fichier tel que texte ASCII ou texte source de programme. L'utilisation de CVS pour la synchronisation de fichiers ayant un autre format, tels que les fichiers JPEG, est possible mais conduit très vite à de grandes quantités de données puisque chaque variante d'un fichier est enregistrée en permanence sur le serveur CVS. En plus, dans de tels cas, la plupart des possibilités offertes par CVS ne peuvent pas être utilisées. L'utilisation de CVS pour synchroniser des fichiers n'est possible que si tous les stations de travail peuvent accéder au même serveur.
Le serveur est le lieu où se trouvent tous les fichiers valables, notamment la dernière version de chaque fichier. Le serveur peut être un ordinateur de bureau fixe. Il est souhaitable que les données du serveur CVS soient régulièrement intégrées dans une sauvegarde.
Une bonne chose lors de la configuration d'un serveur CVS consiste à permettre
à l'utilisateur d'accéder au serveur via SSH. Si, sur ce serveur, l'utilisateur est connu
comme tux et si le
logiciel CVS est installé sur le serveur ainsi que sur le client (ordinateur portable),
il faut veiller, du côté du client, à ce que les variables d'environnement suivantes
soient configurées :
CVS_RSH=ssh CVS_ROOT=tux@server:/repserveur
Avec la commande cvs init,
le serveur CVS est ensuite initialisable du côté du client. Cela ne doit être effectué
qu'une seule fois.
Enfin, il faut assigner un nom à la synchronisation. Sur un client, choisissez ou
créez un répertoire ne contenant que des données qui seront administrées par
CVS (le répertoire peut aussi être vide). Le nom du répertoire est également le nom
de la synchronisation. Dans l'exemple présent, le répertoire est appelé
synchome. Entrez dans ce répertoire et saisissez la commande
suivante pour appeler la synchronisation synchome :
cvs import synchome tux wilber
Beaucoup de commandes de CVS requièrent un commentaire. A cet effet,
CVS démarre un éditeur (celui qui est défini dans la variable d'environnement
$EDITOR ou vi si aucun éditeur n'est défini). On peut éviter
d'appeler un éditeur en entrant le commentaire à l'avance sur la ligne de commande,
comme dans l'exemple suivant :
cvs import -m 'ceci est un Test' synchome tux wilber
A partir de ce moment, il est possible de vérifier le référentiel de synchronisation
depuis tous les ordinateurs à l'aide de :
cvs co synchome.
Il en résulte un nouveau sous-répertoire synchome sur
le client. Si vous réalisez des modifications que vous voulez transmettre
au serveur, entrez dans le répertoire synchome (ou
dans un des ses sous-répertoires) et saisissez :
cvs commit
Cela provoque, par défaut, la transmission au serveur de tous les fichiers (et
sous-répertoires). Si on ne souhaite transmettre que des fichiers ou répertoires
individuels, il faut les spécifier comme suit :
cvs commit fichier1 répertoire1
Avant leur transmission au serveur, il faut ajouter les nouveaux fichiers et répertoires
au référentiel avec une commande telle que :
cvs add fichier1 répertoire1
Il faut ensuite les transmettre à l'aide de :
cvs commit fichier1 répertoire1
Pour changer maintenant de poste de travail, il faut vérifier le référentiel de synchronisation, au cas où cela n'a pas encore été fait lors d'une session antérieure sur le même poste de (voir ci-dessus).
Démarrez la synchronisation avec le serveur avec la commande
cvs update. Actualisez
des fichiers ou répertoires avec cvs update
fichier1 répertoire1. Pour voir les différences entre les fichiers actuels et les
versions enregistrées sur le serveur, utilisez la commande
cvs diff
ou la commande cvs diff fichier1
répertoire1. Utilisez cvs -nq
update pour voir quels fichiers ont été affectés par une mise à jour.
Voici certains des symboles d'état utilisés lors d'une mise à jour :
La version locale a été mise à jour. Ceci concerne tous les fichiers fournis par le serveur et qui manquent sur le système local.
La version locale a été modifiée. Si les modifications de la version ont eu lieu sur le serveur, les modifications ont pu être également exécutées localement.
La version locale a été corrigée avec la version du serveur.
Le fichier local entre en conflit avec la version actuelle du référentiel.
Ce fichier n'existe pas dans CVS.
L'état M marque un fichier localement modifié. Vous pouvez
choisir d'envoyer le fichier local modifié au serveur ou de supprimer le fichier local et
de procéder à une nouvelle actualisation. Dans ce cas, le fichier manquant est récupéré
sur le serveur. Si vous synchronisez un fichier modifié localement et que ce fichier
a été modifié au même endroit par plusieurs utilisateurs, cela peut provoquer un conflit
lors d'une mise à jour. Ce cas de figure est marqué par le symbole
C.
Dans ce cas, examinez le fichier correspondant au niveau des marques de conflits
(»> et «<) et choisissez entre les deux versions. Ceci risquant d'être relativement
pénible, vous pouvez choisir d'abandonner vos modifications en supprimant le fichier
local et en saisissant cvs up
pour récupérer la version actuelle du fichier sur le serveur.