Gestió de versions amb RCS
RCS (Revision Control System) és el sistema de gestió de versions del projecte GNU, i base del més modern sistema CVS.
Control de versions
Si sou de caràcter curiós i heu estat xafardejant amb codi trobat per Internet segur que heu observat, en molts fitxers de C i altres llenguatges, línies similars a la següent:
/* $Id: cc.c,v 1.13 1999/07/02 11:00:45 Joan Exp Joan $ */
Això significa que el fitxer ha estat editat sota el control del sistema de control de revisions RCS (Revision Control System). RCS és la solució a un problema i entendreu la seva utilitat si enteneu el problema.
Programar i administrar sistemes implica l'edició, a vegades de forma continuada, de multitud de fitxers de text i això és aplicable tant a un programa escrit en C com als fitxers de configuració del servidor web Apache. En editar un fitxer podem fer modificacions que, en contra de la nostra voluntat, facin malbé els continguts del fitxer. Aleshores en agradaria tornar a la versió del fitxer anterior a la nostra malifeta, però ja és massa tard, perque en desar el fitxer nou hem eliminat el vell. Fer una còpia de cada fitxer abans d'editar-lo no és una solució real, perque el que necessitem és disposar de la versió anterior, i la anterior a l'anterior, i així fins a la versió original.
RCS és la solució al problema plantejat en el paràgraf anterior. Encara que RCS disposa de multitud d'opcions i possibilitats, el seu ús bàsic és molt simple. La idea fonamental consisteix en considerar que RCS manté una base de dades amb totes les versions històriques dels fitxers. Això ho fa de forma eficient, ja que tan sols conserva les diferències entre cada versió del fitxer, no còpies senceres. La base de dades la manté en un directori de nom RCS, que heu de crear vosaltres en cada un dels directoris on vulgueu fer servir el sistema. Una vegada creat el directori, les operacions més importants que podeu realitzar impliquen l'ús de les ordes ci (check-in) i co (check-out), i estan resumides en la taula següent.
Instrucció |
Efecte |
||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
ci -l fitxer |
Fa una còpia del fitxer a la base de dades i permet continuar la seva edició. |
||||||||||
ci -u fitxer |
Fa una còpia del fitxer i impedeix la seva edició modificant els seus atributs. |
||||||||||
ci fitxer |
Fa una còpia del fitxer i l'elimina del directori actual. Ara el fitxer està tan sols a la base de dades del directori RCS. D'aquesta forma no el podem fer servir, però tampoc modificar per error. |
||||||||||
co -l fitxer |
Recupera el permís d'edició del fitxer, substituint el fitxer del directori actual, si aquest existeix, per una còpia del fitxer contingut a la base de dades del directori RCS. |
||||||||||
co fitxer |
Fa una còpia del fitxer situat a la base de dades del directori RCS dins del directori a actual. El fitxer no és pot editar. |
||||||||||
rcsdiff fitxer |
Compara el fitxer del directori actual amb la darrera versió desada en la base de dades i mostra les diferències. |
||||||||||
rlog fitxer |
Mostra tota la informació de la base de dades sobre el fitxer. |
||||||||||
La documentació de RCS està disponible en pàgines del manual i també en el sistema Info. Per obtenir tota la informació podeu consultar aquestes pàgines:
rcsintro(1)cicoidentrcsrcsdiffrlogrcsfile
