
                               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 systme de contrle de rvisions (Revision Control System) de
   GNU, sous Linux. Il couvre galement l'installation des utilitaires
   diff(1) et diff3(1) qui sont ncessaires 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
   gnrale sur le copyright de la srie des Howto du Linux Documentation
   Project. Rfrez-vous au fichier COPYRIGHT pour plus de dtails.
   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 systme de contrle de rvisions, est un ensemble de
   programmes qui suivent les changements dans des fichiers textes et
   contrlent les accs concurrents dans le cadre d'un travail collectif.
   Il est gnralement 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 dernire
   version ayant t porte sous Linux est la 5.7. Il existe galement
   une version semi officielle multitche (_threaded_). La plupart des
   informations de ce Howto proviennent des pages de manuel de RCS.

   RCS comprend le programme rcs(1) qui contrle 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 mnage en liminant les fichiers inchangs et
   sur lesquels personne ne travaille, rcsdiff(1), qui excute diff(1)
   pour comparer les rvisions, rcsmerge(1), qui fusionne deux branches
   de dveloppement en un seul fichier, et rlog(1), qui affiche
   l'historique des modifications.

   Les fichiers archivs avec RCS peuvent tre du texte d'un format
   quelconque, ou des fichiers binaires si le diff utilis pour gnrer
   les changements supporte les donnes 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 gnrer les
   modifications entre les diverses rvisions. Une archive RCS consiste
   en la rvision initiale - la version 1.1 - et une srie de
   modifications, une pour chaque rvision. 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 numro de version est
   incrment, par exemple 1.2, 1.3, 1.4, etc. pour les rvisions
   successives.

   Les fichiers archives eux-mmes se trouvent gnralement dans un
   sous-rpertoire ./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. Prrequis

   RCS a besoin de diff(1) et de diff3(1) pour gnrer les modifications
   entre les rvisions. La suite d'utilitaires diff doit tre installe
   sur votre systme; RCS s'assure de sa prsence lors de l'installation.

   Des binaires pr-compils 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 installes sur votre systme
   pour utiliser les binaires pr-compils. Reportez-vous au ELF-Howto
   pour plus de dtails.

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

   Aprs avoir extrait l'archive, il faut configurer RCS pour votre
   systme. Ceci se fait  l'aide du script configure dans le rpertoire
   source, qu'il faut excuter en premier. Ceci va gnrer une Makefile
   ainsi que le conf.sh appropri pour votre systme. Vous pouvez ensuite
   faire
make install

   ce qui va crer les binaires. Vous devrez peut-tre devenir root  un
   certain moment pour installer les binaires dans les bons rpertoires.

4. Crer et maintenir des archives

   Le programme rcs(1) s'occupe de crer des archives et de modifier
   leurs attributs. Les options de rcs(1) sont donnes dans la page de
   manuel rcs(1).

   La manire la plus facile de crer une archive est d'excuter mkdir
   RCS dans le rpertoire courant, puis d'initialiser l'archive avec la
   commande
rcs -i nom_du_fichier_de_travail

   Ceci va crer une archive nomme ./RCS/nom_du_fichier_de_travail,v et
   rclamer un texte dcrivant l'archive, mais ne dpose aucune rvision
   dans l'archive. Vous pouvez enclencher et dclencher 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 contrler l'accs 
   l'archive, fixer son format et ses numros de rvisions; tout est
   expliqu dans la page de manuel rcs(1).

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

   ci(1) et co(1) sont les commandes utilises pour enregistrer un
   fichier dans son archive et l'en extraire. La commande ci(1) peut
   galement tre utilise pour les deux oprations. Dans leur forme la
   plus simple, ci(1) and co(1) ne ncessitent 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 excut 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) cre automatiquement une archive RCS si elle n'existe pas dj.

   Si vous ne spcifiez pas de numro de rvision, ci(1) incrmente le
   dernier numro prsent dans l'archive et y ajoute la version actuelle.
   Si vous spcifiez un numro de rvision dans une branche existante, il
   doit tre suprieur aux numros existants. ci(1) cre une nouvelle
   branche si vous spcifiez un numro dans une branche qui n'existe pas.
   Rfrez-vous  la page de manuel de ci(1) et co(1) pour plus de
   dtails.

   ci(1) et co(1) ont de nombreuses options, en mode interactif ou non.
   De nouveau, rfrez-vous aux pages de manuel de ci(1) et co(1) pour
   plus de dtails.

6. Historique des rvisions

   La commande rlog(1) donne des informations sur une archive ainsi que
   les commentaires associs  chacune des rvisions qu'elle contient.
   Par exemple :
rlog nom_du_fichier_de_travail

   va afficher la liste des rvisions du fichier, avec pour chacune la
   date, le userid de l'auteur et la personne qui a bloqu le fichier.
   Vous pouvez spcifier les attributs que vous dsirez voir.

7. Inclure des donnes RCS dans les fichiers

   co(1) tient  jour une liste de mots-cls de l'archive RCS lorsque le
   fichier de travail est extrait. Le mot-cl $Id$ dans un document sera
   remplac par une chane contenant le nom du fichier, le numro de
   rvision, la date d'extraction, l'auteur, l'tat de l'archive et, le
   cas chant, la personne qui a bloqu le fichier. Le mot cl $Log$ est
   lui remplac par l'historique du fichier.

   Ces mots-cls ainsi que d'autres peuvent tre utiliss comme cls de
   recherche dans une archive RCS. Rfrez-vous  la page de manuel de
   ident(1) pour plus de dtails.

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

   Le contrle de versions dans emacs(1) fonctionne comme une interface 
   RCS. Ce qui suit s'applique  la version 19.34 de GNU Emacs qui est
   livre avec la majorit des distributions Linux. Si l'on dite dans
   emacs(1) un fichier qui est sous le contrle de RCS, la commande
   vc-toggle-read-only (associe par dfaut  C-x C-q) va enregistrer le
   fichier dans le systme de contrle 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 procde  l'enregistrement de la nouvelle
   rvision 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.
