Le MINI-HOWTO RCS

Robert Kiesling
Traduction Jean-Albert Ferrez, <Jean-Albert.Ferrez@epfl.ch>

V1.4 1997/08/14
Ce document couvre les bases de l'installation et de l'utilisation de RCS, le syst�me de contr�le de r�visions (Revision Control System) de GNU, sous Linux. Il couvre �galement l'installation des utilitaires diff(1) et diff3(1) qui sont n�cessaires au fonctionnement de RCS. Ce document peut �tre reproduit librement, dans sa totalit� ou en partie, pour autant que tout usage de ce document soit conforme � la notice g�n�rale sur le copyright de la s�rie des Howto du Linux Documentation Project. R�f�rez-vous au fichier COPYRIGHT pour plus de d�tails. Envoyez toute plainte, suggestion, correction et autre � kiesling@terracom.net, pour que je puisse maintenir ce document aussi complet et � jour que possible.

1. Vue d'ensemble de RCS.

RCS, le syst�me de contr�le de r�visions, est un ensemble de programmes qui suivent les changements dans des fichiers textes et contr�lent les acc�s concurrents dans le cadre d'un travail collectif. Il est g�n�ralement utilis� pour maintenir des collections de codes sources. Il est �galement adapt� au suivi des fichiers de documentation.

RCS a �t� �crit par Walter F. Tichy et Paul Eggert. La derni�re version ayant �t� port�e sous Linux est la 5.7. Il existe �galement une version semi officielle multit�che (threaded). La plupart des informations de ce Howto proviennent des pages de manuel de RCS.

RCS comprend le programme rcs(1) qui contr�le les attributs de l'archive RCS, ci(1) et co(1), qui enregistrent un fichier dans l'archive (check in) et extraient des fichiers de l'archive (check out), ident(1), qui recherche un mot-cl� dans une archive RCS, rcsclean(1), qui fait le m�nage en �liminant les fichiers inchang�s et sur lesquels personne ne travaille, rcsdiff(1), qui ex�cute diff(1) pour comparer les r�visions, rcsmerge(1), qui fusionne deux branches de d�veloppement en un seul fichier, et rlog(1), qui affiche l'historique des modifications.

Les fichiers archiv�s avec RCS peuvent �tre du texte d'un format quelconque, ou des fichiers binaires si le diff utilis� pour g�n�rer les changements supporte les donn�es sur 8 bits. Les fichiers peuvent contenir un texte de description pour faciliter le suivi par ident. RCS utilise les programmes diff(1) and diff3(1) pour g�n�rer les modifications entre les diverses r�visions. Une archive RCS consiste en la r�vision initiale - la version 1.1 - et une s�rie de modifications, une pour chaque r�vision. Chaque fois qu'un fichier est extrait de l'archive � l'aide de co(1), �dit�, puis � nouveau enregistr� dans l'archive avec ci(1), le num�ro de version est incr�ment�, par exemple 1.2, 1.3, 1.4, etc. pour les r�visions successives.

Les fichiers archives eux-m�mes se trouvent g�n�ralement dans un sous-r�pertoire ./RCS, bien que RCS ait d'autres options pour le stockage des archives.

Pour une vue d'ensemble de RCS, voyez �galement la page de manuel de rcsintro(1).

2. Pr�requis

RCS a besoin de diff(1) et de diff3(1) pour g�n�rer les modifications entre les r�visions. La suite d'utilitaires diff doit �tre install�e sur votre syst�me; RCS s'assure de sa pr�sence lors de l'installation.

Des binaires pr�-compil�s des diffutils sont disponibles � l'adresse :

ftp://sunsite.unc.edu/pub/Linux/utils/text/diffutils-2.6.bin.ELF.tar.gz
ainsi que sur les sites miroirs. Si vous devez les compiler, les sources se trouvent � :
ftp://prep.ai.mit.edu/pub/gnu/diffutils-2.7.tar.gz
ainsi que sur les sites miroirs.

NdT: En France, on trouve les diffutils sur ftp.lip6.fr aux adresses suivantes :

ftp://ftp.lip6.fr/pub/linux/sunsite/utils/text/diffutils-2.6.bin.ELF.tar.gz
ftp://ftp.lip6.fr/pub/gnu/diffutils-2.7.tar.gz

Les librairies ELF doivent �galement �tre install�es sur votre syst�me pour utiliser les binaires pr�-compil�s. Reportez-vous au ELF-Howto pour plus de d�tails.

3. Compiler RCS

Procurez-vous les sources de RCS version 5.7, disponibles � :

ftp://sunsite.unc.edu/pub/Linux/devel/vc/rcs-5.7.src.tar.gz
ainsi que sur les sites miroirs, en France � :
ftp://ftp.lip6.fr/pub/linux/sunsite/devel/vc/rcs-5.7.src.tar.gz

Apr�s avoir extrait l'archive, il faut configurer RCS pour votre syst�me. Ceci se fait � l'aide du script configure dans le r�pertoire source, qu'il faut ex�cuter en premier. Ceci va g�n�rer une Makefile ainsi que le conf.sh appropri� pour votre syst�me. Vous pouvez ensuite faire

make install
ce qui va cr�er les binaires. Vous devrez peut-�tre devenir root � un certain moment pour installer les binaires dans les bons r�pertoires.

4. Cr�er et maintenir des archives

Le programme rcs(1) s'occupe de cr�er des archives et de modifier leurs attributs. Les options de rcs(1) sont donn�es dans la page de manuel rcs(1).

La mani�re la plus facile de cr�er une archive est d'ex�cuter mkdir RCS dans le r�pertoire courant, puis d'initialiser l'archive avec la commande

rcs -i nom_du_fichier_de_travail
Ceci va cr�er une archive nomm�e ./RCS/nom_du_fichier_de_travail,v et r�clamer un texte d�crivant l'archive, mais ne d�pose aucune r�vision dans l'archive. Vous pouvez enclencher et d�clencher le blocage strict avec les commandes
rcs -L nom_du_fichier_de_travail
et
rcs -U nom_du_fichier_de_travail
respectivement. Il y a d'autres options pour contr�ler l'acc�s � l'archive, fixer son format et ses num�ros de r�visions; tout est expliqu� dans la page de manuel rcs(1).

5. ci(1) et co(1).

ci(1) et co(1) sont les commandes utilis�es pour enregistrer un fichier dans son archive et l'en extraire. La commande ci(1) peut �galement �tre utilis�e pour les deux op�rations. Dans leur forme la plus simple, ci(1) and co(1) ne n�cessitent que le nom du fichier de travail.

ci nom_du_fichier_de_travail
et
co nom_du_fichier_de_travail
La forme suivante
ci -l nom_du_fichier_de_travail
enregistre le ficher en mode bloqu�, et
co -l nom_du_fichier_de_travail
est ex�cut� automatiquement. C'est-�-dire, ci -l extrait � nouveau le fichier et le bloque.
ci -u nom_du_fichier_de_travail
enregistre le fichier dans l'archive et l'extrait � nouveau sans le bloquer. Dans tous les cas, l'utilisateur se voit demander un message pour l'historique.

ci(1) cr�e automatiquement une archive RCS si elle n'existe pas d�j�.

Si vous ne sp�cifiez pas de num�ro de r�vision, ci(1) incr�mente le dernier num�ro pr�sent dans l'archive et y ajoute la version actuelle. Si vous sp�cifiez un num�ro de r�vision dans une branche existante, il doit �tre sup�rieur aux num�ros existants. ci(1) cr�e une nouvelle branche si vous sp�cifiez un num�ro dans une branche qui n'existe pas. R�f�rez-vous � la page de manuel de ci(1) et co(1) pour plus de d�tails.

ci(1) et co(1) ont de nombreuses options, en mode interactif ou non. De nouveau, r�f�rez-vous aux pages de manuel de ci(1) et co(1) pour plus de d�tails.

6. Historique des r�visions

La commande rlog(1) donne des informations sur une archive ainsi que les commentaires associ�s � chacune des r�visions qu'elle contient. Par exemple :

rlog nom_du_fichier_de_travail
va afficher la liste des r�visions du fichier, avec pour chacune la date, le userid de l'auteur et la personne qui a bloqu� le fichier. Vous pouvez sp�cifier les attributs que vous d�sirez voir.

7. Inclure des donn�es RCS dans les fichiers

co(1) tient � jour une liste de mots-cl�s de l'archive RCS lorsque le fichier de travail est extrait. Le mot-cl� $Id$ dans un document sera remplac� par une cha�ne contenant le nom du fichier, le num�ro de r�vision, la date d'extraction, l'auteur, l'�tat de l'archive et, le cas �ch�ant, la personne qui a bloqu� le fichier. Le mot cl� $Log$ est lui remplac� par l'historique du fichier.

Ces mots-cl�s ainsi que d'autres peuvent �tre utilis�s comme cl�s de recherche dans une archive RCS. R�f�rez-vous � la page de manuel de ident(1) pour plus de d�tails.

8. RCS et le contr�le de versions dans emacs(1)

Le contr�le de versions dans emacs(1) fonctionne comme une interface � RCS. Ce qui suit s'applique � la version 19.34 de GNU Emacs qui est livr�e avec la majorit� des distributions Linux. Si l'on �dite dans emacs(1) un fichier qui est sous le contr�le de RCS, la commande vc-toggle-read-only (associ�e par d�faut � C-x C-q) va enregistrer le fichier dans le syst�me de contr�le de version d'emacs, puis dans RCS. emacs ouvre un tampon (buffer) dans lequel il est possible de saisir un message pour l'historique. Une fois ce message saisi, C-c C-c termine l'�dition et proc�de � l'enregistrement de la nouvelle r�vision dans l'archive RCS.

Si vous avez opt� pour un blocage strict, vous devez bloquer � nouveau le fichier pour l'�diter dans emacs(1). Vous pouvez extraire le fichier � l'aide de la commande % dans le mode buffer-menu.

Pour plus d'informations, consultez le manuel de GNU Emacs ainsi que les pages info.