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.