GNU RCS

outil de versionnage de fichiers

GNU RCS (en anglais : Revision Control System) est un logiciel de gestion de versions développé en 1982 par Walter F. Tichy.

GNU RCS
Description de l'image Heckert GNU white.svg.

Informations
Créateur Walter F. TichyVoir et modifier les données sur Wikidata
Développé par Projet GNU
Première version
Dernière version 5.10.1 ()[1]Voir et modifier les données sur Wikidata
Dépôt cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/rcsVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation GNU/Linux, BSD et macOSVoir et modifier les données sur Wikidata
Type Gestion de versions
Licence GNU GPLv3+
Site web www.gnu.org/software/rcs/

Cet outil de première génération est aujourd'hui remplacé par des systèmes de contrôle des versions centralisés comme CVS et SVN, ou plus récemment par des systèmes distribués comme Git, Darcs, monotone ou Mercurial, tous plus adaptés à la gestion du code source. RCS reste cependant utile dans des scénarios de révisions plus classiques.

Historique

modifier

Université Purdue

modifier

RCS est donc à l'origine un projet universitaire, initié au début des années 1980, et maintenu pendant plus d'une décennie par Walter F. Tichy[2] au sein de l'université Purdue[3].

Ce logiciel représente à l'époque une alternative libre au système SCCS, et une évolution technique, notamment par son interface utilisateur, plus conviviale, et une récupération des données, plus rapide, par l'amélioration du stockage des différentes versions. Ce gain de performance provient d'un algorithme appelé en anglais « reverse differences » (ou plus simplement « deltas ») et consiste à stocker la copie complète des versions les plus récentes et conserver uniquement les changements réalisés.

Eric Raymond a contribué au développement d'un outil de conversion capable de récupérer dans RCS l'historique de versions SCCS[4]. RCS propose par ailleurs un certain nombre de commandes mais peut également s'utiliser avec GNU Emacs à l'aide du mode VC, une interface Emacs pour RCS/SCCS/CVS développée par Eric Raymond et améliorée par son auteur en 2008 avec le support de Git[5].

Projet GNU

modifier

L'université Purdue poursuit la maintenance du projet sous la bannière GNU à compter de 1995. RCS devient un projet GNU, certainement pour trouver un nouveau mainteneur, et réalise la version 5.7 courant 1995. Le projet entame par la suite une longue période d'inactivité, puis se relance quinze ans plus tard avec l'annonce d'une nouvelle version test le [6]. La version stable 5.8 sort fin août 2011 sous licence GPLv3+[7].

Caractéristiques

modifier

RCS utilise GNU Diffutils pour retrouver les différences entre versions.

GNU RCS est adapté aux révisions d'une seule unité d'information, habituellement un document contenant du code source mais également différentes ressources documentaires. Il automatise le rangement, le rappel, l'identification, et la fusion des révisions. RCS est utile pour du texte qui doit être révisé fréquemment, par exemple le code source d'un logiciel, de la documentation, des procédures, des modèles de lettre ou des fichiers de configuration. RCS est aussi capable de gérer des fichiers binaires. Les révisions sont rangées à l'aide de l'utilitaire GNU diff.

Parce qu'il opère sur un fichier unique, il n'est pas vraiment adapté à de gros projets, mais il permet à de multiples usagers de travailler simultanément sur un fichier. Il fut remplacé par CVS plus adapté à de gros projets. CVS était à l'origine bâti sur RCS. Cependant, CVS, SVN et autres sont bien lourds pour gérer des fichiers uniques, puisqu'ils nécessitent une étape de configuration. RCS a encore toute son utilité, partout où l'on ne gère que peu de fichiers. Un exemple concret est l'archivage de fichiers de configuration (ex. /etc/).

Bibliographie

modifier

Notes et références

modifier
  1. (en) Thien-Thi Nguyen (d), « GNU RCS 5.10.1 available », (consulté le )
  2. Aidé notamment par Paul Eggert.
  3. Certainement dans le cadre de ses études, puis par la suite, probablement comme enseignant (à vérifier).
  4. (en) sccs2rcs-1.1, un script Csh à l'origine développé par Kenneth Cox, maintenu ensuite par Eric Raymond jusqu'à la version Csh la plus récente (1.3), puis réimplémenté en Python par ce même Eric Raymond.
  5. (en) Eric Raymond's open-source collection, section "Other peoples' software" : Support RCS pour Emacs.
  6. (en) http://lists.gnu.org/archive/html/info-gnu/2010-09/msg00019.html.
  7. (en) https://savannah.gnu.org/forum/forum.php?forum_id=6921.

Articles connexes

modifier

Liens externes

modifier