# RCS

# Le contrôle de versions : RCS (Revision Control System)

C'est un programme très simple mais puissant qui permet de garder l'historique d'un fichier. Son intérêt est que vos fichiers évoluent au fur et à mésure que vous les modifiez, et sans un outil de gestion de version, on peut difficilement gérer les anciennes versions.

## Commandes de base

Sans trop rentrer dans les détails (pour cela, faire `man rcsintro`), l'utilisation de base peut se résumer à deux commandes :

### Enregistrer le fichier

`ci` (de l'anglais check-in) est la commande avec laquelle on dépose la dernière version du fichier dans l'archive gérée par RCS.

Supposons que notre fichier s'appelle `monfichier`. Voilà ce qui se passe la première fois que l'on fait le check-in : (en italique, ce qui est tapé par l'utilisateur) :

    corvette ~ $ ci monfichier
    RCS/monfichier,v <-- monfichier
    initial revision: 1.1
    enter description, terminated with ^D or '.':
    NOTE: This is NOT the log message!
    >>Ceci est une description du fichier
    >> .
    done
    corvette ~ $

Comme vous le voyez, la dernière ligne doit être un point, afin de signaler au programme qu'on a fini d'écrire nos commentaires.

Le fichier est sauvé dans l'archive RCS, appelée `monfichier,v`, et effacé. Par défaut, l'archive se trouve dans le même répertoire que le fichier de départ. Il est plus pratique d'avoir un sous-répertoire `RCS/`, dans lequel seront sauvegardées automatiquement les versions de vos fichiers.

La première fois que vous enregistrez un fichier, donnez une description générale du fichier. Les autres fois, vous mettrez juste un commentaire sur la version (modifications apportées, date, etc).

### Récupérer le fichier

`co` (de l'anglais check-out) est la commande avec lequel on récupère une version du fichier dans l'archive gérée par RCS.

Supposons que vous voulez sortir la toute dernière version de notre fichier, appelé `monfichier`.

    corvette ~ $ co monfichier
    RCS/monfichier,v --> monfichier
    revision 1.1
    done
    corvette ~ $

La version 1.1 de `monfichier` est rétablie dans le répertoire courant.

RCS ne sauvegarde pas des copies intégrales de chacune des versions : chaque nouvelle version contient en fait les différences par rapport à la précédente. C'est ce qui permet de gérer les différentes versions, sans utiliser inutilement de la place disque en stockant 10 fois les mêmes données.

## FAQ

- Lisez bien les messages de RCS : s'il dit

      writable monfichier exists; overwrite? [ny](n)

  c'est qu'il y a déjà un fichier de ce nom dans le répertoire. Il vaut mieux répondre `n`on et vérifier avant si on peut l'écraser.
- Vous ne voulez pas que le fichier soit effacé après le dépôt. Il faut taper :

      ci -u monfichier

  Le fichier contenant les dernières modifications est sauvegardé normalement, et vous conservez dans votre répertoire le fichier dans son dernier état.
- Vous voulez rétablir la version 1.4 et pas la plus récente. Tapez :

      co -r1.4 monfichier

- Vous voulez un historique des versions, avec les commentaires que vous aviez mis. Tapez :

      rcslog monfichier

- En quoi `monfichier` diffère-t-il actuellement de la version 1.3 ? Tapez :

      rcsdiff -r1.3 monfichier

Pour plus d'informations, vous pouvez consulter le Mini-HOWTO RCS.

Auteur : Roberto Dicosmo (1993?). Dernière modification le 2002-12-16.