
  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 systeme de controle de revisions (Revision Control System)  de
  GNU,  sous  Linux.  Il couvre egalement l'installation des utilitaires
  diff(1) et diff3(1) qui sont necessaires au fonctionnement de RCS.  Ce
  document peut etre reproduit librement, dans sa totalite ou en partie,
  pour autant que tout usage de ce document soit conforme  a  la  notice
  generale sur le copyright de la serie des Howto du Linux Documentation
  Project. Referez-vous au  fichier  COPYRIGHT  pour  plus  de  details.
  Envoyez toute plainte, suggestion, correction et autre a kiesling@ter-
  racom.net, pour que je puisse maintenir ce document aussi complet et a
  jour que possible.

  1.  Vue d'ensemble de RCS.

  RCS,  le  systeme  de  controle  de  revisions,  est  un  ensemble  de
  programmes qui suivent les changements dans  des  fichiers  textes  et
  controlent les acces concurrents dans le cadre d'un travail collectif.
  Il est generalement utilise pour maintenir des  collections  de  codes
  sources.   Il   est   egalement   adapte  au  suivi  des  fichiers  de
  documentation.

  RCS a ete ecrit par Walter  F.  Tichy  et  Paul  Eggert.  La  derniere
  version  ayant  ete  portee sous Linux est la 5.7. Il existe egalement
  une version semi officielle  multitache  (threaded).  La  plupart  des
  informations de ce Howto proviennent des pages de manuel de RCS.

  RCS  comprend  le  programme  rcs(1)  qui  controle  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-cle  dans  une  archive  RCS,
  rcsclean(1), qui fait le menage en eliminant les fichiers inchanges et
  sur lesquels personne ne travaille, rcsdiff(1),  qui  execute  diff(1)
  pour  comparer  les revisions, rcsmerge(1), qui fusionne deux branches
  de  developpement  en  un  seul  fichier,  et  rlog(1),  qui   affiche
  l'historique des modifications.

  Les  fichiers  archives  avec  RCS  peuvent  etre du texte d'un format
  quelconque, ou des fichiers binaires si le diff utilise  pour  generer
  les  changements supporte les donnees 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 generer les
  modifications entre les diverses revisions. Une archive  RCS  consiste
  en  la  revision  initiale  -  la  version  1.1  -  et  une  serie  de
  modifications, une pour chaque revision. Chaque fois qu'un fichier est
  extrait  de  l'archive  a  l'aide  de  co(1),  edite,  puis  a nouveau
  enregistre dans  l'archive  avec  ci(1),  le  numero  de  version  est
  incremente,  par  exemple  1.2,  1.3,  1.4,  etc.  pour  les revisions
  successives.

  Les fichiers archives eux-memes se trouvent generalement dans un sous-
  repertoire  ./RCS,  bien que RCS ait d'autres options pour le stockage
  des archives.

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

  2.  Prerequis

  RCS  a besoin de diff(1) et de diff3(1) pour generer les modifications
  entre les revisions. La suite d'utilitaires diff doit  etre  installee
  sur votre systeme; RCS s'assure de sa presence lors de l'installation.

  Des binaires pre-compiles des diffutils sont disponibles a 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 a :

  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 egalement etre installees sur votre systeme
  pour utiliser les binaires pre-compiles.  Reportez-vous  au  ELF-Howto
  pour plus de details.

  3.  Compiler RCS

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

  ftp://sunsite.unc.edu/pub/Linux/devel/vc/rcs-5.7.src.tar.gz

  ainsi que sur les sites miroirs, en France a :

  ftp://ftp.lip6.fr/pub/linux/sunsite/devel/vc/rcs-5.7.src.tar.gz

  Apres  avoir  extrait  l'archive,  il  faut  configurer RCS pour votre
  systeme. Ceci se fait a l'aide du script configure dans le  repertoire
  source,  qu'il  faut executer en premier. Ceci va generer une Makefile
  ainsi que le conf.sh approprie pour votre systeme. Vous pouvez ensuite
  faire

  make install

  ce  qui va creer les binaires. Vous devrez peut-etre devenir root a un
  certain moment pour installer les binaires dans les bons  repertoires.

  4.  Creer et maintenir des archives

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

  La  maniere  la  plus facile de creer une archive est d'executer mkdir
  RCS dans le repertoire courant, puis d'initialiser l'archive  avec  la
  commande

  rcs -i nom_du_fichier_de_travail

  Ceci  va creer une archive nommee ./RCS/nom_du_fichier_de_travail,v et
  reclamer un texte decrivant l'archive, mais ne depose aucune  revision
  dans l'archive. Vous pouvez enclencher et declencher 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  controler  l'acces  a
  l'archive,  fixer  son  format  et  ses numeros de revisions; tout est
  explique dans la page de manuel rcs(1).

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

  ci(1) et co(1)  sont  les  commandes  utilisees  pour  enregistrer  un
  fichier  dans  son  archive  et  l'en extraire. La commande ci(1) peut
  egalement etre utilisee pour les deux operations. Dans leur  forme  la
  plus  simple,  ci(1) and co(1) ne necessitent 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 bloque, et

  co -l nom_du_fichier_de_travail

  est execute automatiquement. C'est-a-dire, ci -l extrait a nouveau  le
  fichier et le bloque.

  ci -u nom_du_fichier_de_travail

  enregistre  le  fichier  dans l'archive et l'extrait a nouveau sans le
  bloquer.  Dans tous les cas, l'utilisateur se voit demander un message
  pour l'historique.

  ci(1)  cree automatiquement une archive RCS si elle n'existe pas deja.

  Si vous ne specifiez pas de numero de revision,  ci(1)  incremente  le
  dernier numero present dans l'archive et y ajoute la version actuelle.
  Si vous specifiez un numero de revision dans une branche existante, il
  doit  etre  superieur  aux  numeros existants. ci(1) cree une nouvelle
  branche si vous specifiez un numero dans une branche qui n'existe pas.
  Referez-vous  a  la  page  de  manuel  de  ci(1) et co(1) pour plus de
  details.

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

  6.  Historique des revisions

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

  rlog nom_du_fichier_de_travail

  va afficher la liste des revisions du fichier, avec  pour  chacune  la
  date,  le  userid  de l'auteur et la personne qui a bloque le fichier.
  Vous pouvez specifier les attributs que vous desirez voir.

  7.  Inclure des donnees RCS dans les fichiers

  co(1) tient a jour une liste de mots-cles de l'archive RCS lorsque  le
  fichier  de travail est extrait. Le mot-cle $Id$ dans un document sera
  remplace par une chaine contenant le nom  du  fichier,  le  numero  de
  revision,  la  date d'extraction, l'auteur, l'etat de l'archive et, le
  cas echeant, la personne qui a bloque le fichier. Le mot cle $Log$ est
  lui remplace par l'historique du fichier.

  Ces  mots-cles  ainsi que d'autres peuvent etre utilises comme cles de
  recherche dans une archive RCS. Referez-vous a la page  de  manuel  de
  ident(1) pour plus de details.

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

  Le controle de versions dans emacs(1) fonctionne comme une interface a
  RCS. Ce qui suit s'applique a la version 19.34 de GNU  Emacs  qui  est
  livree  avec  la  majorite des distributions Linux. Si l'on edite dans
  emacs(1) un fichier qui est sous le controle de RCS, la  commande  vc-
  toggle-read-only  (associee  par  defaut  a C-x C-q) va enregistrer le
  fichier dans le systeme de controle 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'edition  et  procede  a  l'enregistrement  de  la  nouvelle
  revision dans l'archive RCS.

  Si vous avez opte pour un blocage strict, vous devez bloquer a nouveau
  le  fichier  pour  l'editer  dans  emacs(1).  Vous  pouvez extraire le
  fichier a 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.

