Le MINI-HOWTO RCS
 Robert Kiesling
 Traduction Jean-Albert Ferrez, <[email protected]>
 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 (_R_e_v_i_s_i_o_n _C_o_n_t_r_o_l _S_y_s_t_e_m)  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 _L_i_n_u_x _D_o_c_u_m_e_n_t_a_t_i_o_n
 _P_r_o_j_e_c_t. 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.

 11..  VVuuee dd''eennsseemmbbllee ddee RRCCSS..

 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  (_t_h_r_e_a_d_e_d).  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  (_c_h_e_c_k  _i_n)  et  extraient des fichiers de l'archive (_c_h_e_c_k
 _o_u_t), 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).

 22..  PPrreerreeqquuiiss

 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.

 33..  CCoommppiilleerr RRCCSS

 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.

 44..  CCrreeeerr eett mmaaiinntteenniirr ddeess aarrcchhiivveess

 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).

 55..  ccii((11)) 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

 _e_s_t _e_x_e_c_u_t_e _a_u_t_o_m_a_t_i_q_u_e_m_e_n_t_. 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.

 66..  HHiissttoorriiqquuee ddeess rreevviissiioonnss

 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.

 77..  IInncclluurree ddeess ddoonnnneeeess RRCCSS ddaannss lleess ffiicchhiieerrss

 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.

 88..  RRCCSS eett llee ccoonnttrroollee ddee vveerrssiioonnss ddaannss eemmaaccss((11))

 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 (_b_u_f_f_e_r) 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 _b_u_f_f_e_r_-_m_e_n_u.

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