Previous Next Contents

7. Autres commandes utiles

La commande rcsdiff permet de comparer la version actuelle avec la plus récente version qui est sauvegardée :

rcsdiff -u foo.c

L'option -u de rcsdiff permet d'utiliser un diff unifié (unified diff). En fait, rcsdiff accepte toutes les options que la commande diff accepte. Par exemple, pour générer un context diff, on utilisera l'option -c.

Par exemple, nous extrayons la révision 1.2 de foo.c, nous effectuons une petite modification (correction d'un bug), et rcsdiff foo.c nous donne:

===================================================================
RCS file: foo.c,v
retrieving revision 1.2
diff -u -r1.2 foo.c
--- foo.c       1997/08/23 20:33:36     1.2
+++ foo.c       1997/08/24 20:36:20
@@ -24,7 +24,7 @@
 main()
 {
     int i = 0;
-    for(i = 0; i <= 10; i++)
+    for(i = 0; i < 10; i++)
        printf("Hello world\n");
     
 }

Les lignes qui n'ont pas été modifiées sont affichées avec une simple espace en début de ligne. Les lignes effacées dans la version la plus récente ont un - en début de ligne, et les lignes qui ont été ajoutées ont un + en début de ligne. Comme on peut le remarquer, les lignes modifiées sont considérées comme effacées dans l'ancienne version, et les changements sont considérés comme ajoutés dans la nouvelle. Dans le cas d'un context diff, les lignes marquées avec un ! indiquent un changement, et les lignes marquées avec un + indiquent des lignes ajoutées.

On peut également comparer deux versions :

rcsdiff -u -r1.2 -r1.4 foo.c

Une utilisation de rcsdiff est la génération de mises à jour appliquées par des patch. Par exemple, une fois un programme terminé, effectuez un check-in sur tous les fichiers avec un nouveau numéro de release, par exemple 2.0. Puis, pour la release suivante (par exemple la 3.0), lancez rcsdiff sur la révision 2.0 pour tous les fichiers :

rcsdiff -c -r2.0 RCS/* > monprog-3.0.patch 2>&1

Vous obtiendrez ainsi un fichier patch que vous pourrez distribuer aux personnes possédant la version 2.0.

Une autre possibilité intéressante est de consulter le journal des modifications effectuées. Pour cela on utilise la commande rlog, qui donne l'historique des changements effectués :

rlog foo.c

Ce qui nous donne :


RCS file: foo.c,v
Working file: foo.c
head: 1.3
branch:
locks: strict
        mad: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
programme hello world
----------------------------
revision 1.3
date: 1997/08/23 20:36:20;  author: mad;  state: Exp;  lines: +6 -1
Correction d'un petit bug
----------------------------
revision 1.2
date: 1997/08/23 20:33:36;  author: mad;  state: Exp;  lines: +8 -3
Affichage 10 fois du message
----------------------------
revision 1.1
date: 1997/08/23 20:33:05;  author: mad;  state: Exp;
Initial revision
=============================================================================

Le plus intéressant ce sont les commentaires saisis lors d'un ci. Par exemple, on peut noter que pour la révision 1.3, le commentaire est Correction d'un petit bug.

A noter que les dates et heures sont en UTC, et non pas dans la zone locale. Cela permet à des développeurs de différentes zones géographiques de pouvoir collaborer.

La commande rcs est utilisée pour modifier l'état des fichiers RCS. Par exemple, pour bloquer un fichier qui ne l'est pas ou pour casser un verrou.


Previous Next Contents