Niveau :      
Résumé : co -l ; ci -u ; rlog ; rscdiff

Avant subversion existait cvs, avant cvs existait rcs. CVS est en fait une version de RCS en réseau avec un dépôt centralisé.

Étudions donc cet outil, qui bien que préhistorique a encore un peu d'utilité dans notre monde. En effet, il est très simple d'utilisation, local et ne nécessite aucune configuration préalable.

Prenons un exemple simple. Vous avez un fichier de configuration, et il vous arrive de le modifier. Logiquement vous voulez garder les traces de ce que vous faites. Appelons ce fichier /etc/mysql/my.cnf. Notes que ci = CheckIn (commit) et co = CheckOut :

$ cd /etc/mysql
# à partir de maintenant on garde les traces
$ ci -i my.cnf
# mais on ne veut pas qu'il disparaisse
$ co my.cnf
# le fichier est maintenant en lecture seule

Vous aurez remarqué que toutes les modifications (ainsi que l'initialisation) nécessitent un commentaire. Pensez à le terminer par un point sur une seule ligne ou par un ctrl-d.

Maintenant faisons une modification :

# on récupère la bonne version, et on autorise l'écriture
$ co -l my.cnf
# on fait nos petites affaires
$ vi my.cnf
# et on valide (en mettant le fichier en lecture seule)
$ ci -u my.cnf

Et voilà, c'est fini pour l'utilisation de base. Vous voyez que c'est plutôt simple et faisable n'importe où. L'historique des versions est stocké dans un fichier my.cnf,v si vous ne voulez pas voir ces fichiers, il suffit de créer un répertoire RCS avant de faire le ci -i et ceux-ci seront automatiquement mis dedans.

Maintenant vous avez un problème, vous voulez voir ce qui s'est passé. La procédure est assez simple :

# Qui a fait quoi ? (merci les commentaires)
$ rlog my.cnf
# Qu'est-ce qui est en train d'être fait ? (avant un ci)
$ rcsdiff my.cnf
# Qu'est-ce qui a été fait entre 2 versions données ? (si le 2e -r n'est pas donné, c'est la version courante qui est utilisée)
$ rcsdiff -r1.1 -r1.2 my.cnf
# revenir à une ancienne version temporairement
$ co -r1.1 my.cnf
# revenir à une ancienne version définitivement
$ co -l my.cnf
$ co -p1.1 my.cnf > my.cnf
$ ci -u my.cnf 

RCS contient d'autres fonctions, mais notez tout de même que si les fonctions présentes ne vous suffisent pas il est fort probable que vous deviez vous tourner vers un vrai gestionnaire de versions moderne comme subversion ou git.

Notez enfin qu'avec RCS tout est local, la copie de travail est donc directement le fichier utile.