L'interface de RCS est relativement
simple et seulement deux commandes sont suffisantes dans la plupart
des cas : ci
et co
.
Nous supposons l'existence d'un fichier nommé foo.c
. Le
source du fichier est le suivant :
#include <stdio.h>
main()
{
printf("Hello world\n");
}
Nous allons créer un nouveau groupe de révisions avec foo.c
comme révision initiale (1.1). Le groupe sera stocké dans le fichier
nommé foo.c,v
. Par défaut, le fichier foo.c
sera
effacé. Pour cela, nous utilisons la commande de check-in:
ci foo.c
Cette commande demande également une description pour le groupe.
foo.c,v <-- foo.c enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>>
Par exemple, nous tapons :
>> programme hello world.
>> .
Le texte décrit ce que le programme fait, et ci
rappelle que
ce n'est pas une entrée dans le journal. Les commandes ci
ultérieures demanderont une entrée du journal, laquelle résumera les
modifications apportées. Ces messages doivent être brefs, décrivant
les changements apportés.
Pour extraire la dernière révision dans un groupe, on utilise la commande de check-out :
co foo.c
Le fichier foo.c
est recréé, mais en lecture seule. On peut
utiliser le fichier pour le compiler par exemple. En effet, pour
installer un logiciel, on extrait toutes les sources en lecture seule,
on les compile et on efface les sources.
Pour pouvoir modifier le fichier foo.c
, nous devons utiliser
l'option -l
:
co -l foo.c
Cela permet d'extraire le fichier foo.c
mais en posant un
verrou sur le fichier. Cela signifie que vous, et
vous seul, avez la permission de faire un check-in sur une
nouvelle révision du fichier (ce qui est nécessaire dans le cas où
plusieurs personnes travaillent sur un même groupe de révisions). Le
fichier foo.c
en alors en écriture pour vous.
Le système peut être configuré avec la caractéristique du 'strict locking'. Tous les fichiers RCS sont initialisés de telle sorte que les opérations de check-in nécessitent un verrou sur la révision précédente.
Pour désactiver le strict locking sur un fichier individuel, utilisez la commande :
rcs -U foo.c
Pour activer le strict locking sur un fichier individuel, utilisez la commande :
rcs -L foo.c
La notion de locking est abordée dans un chapitre ultérieur.
Nous pouvons alors éditer le fichier foo.c
, et une fois les
modifications effectuées, en faire une nouvelle révision par la
commande:
ci foo.c
La commande nous demande alors le message du journal :
foo.c,v <-- foo.c
new revision: 1.2; previous revision: 1.1
enter log message, terminated with single '.' or end of file:
>> Affichage 10 fois du message
>> .
La nouvelle révision est la 1.2.
Si vous obtenez lors du ci, le message d'erreur suivant (en supposant que le login de l'utilisateur soit mad):
ci error: no lock set by mad
c'est que vous avez oublié de verrouiller la révision lors du
co
.
On peut noter, que pour des raisons pratiques, tous les fichiers RCS
(*,v) peuvent être déplacés dans un sous-répertoire nommé
RCS
. Donc, prenez l'habitude de créer ce répertoire avant de
commencer à créer vos révisions. RCS l'utilisera automatiquement.
Si vous ne désirez pas effacer le fichier de travail lors du
check-in, vous devez utiliser soit l'option -l
, qui
entraîne un locking, soit l'option -u
qui n'entraîne
pas de locking (ces options entraînent un appel à la commande
co
):
ci -l foo.c
Les commandes ci
et co
sont les deux commandes de
bases de RCS.