RCS

RCS significa Revision Control System e é um sistema para controlar acesso a arquivos compartilhados por vários usuários.

Comandos do RCS

Para que um programa passe a ser gerenciado pelo RCS, é preciso que ele seja primeiro verificado. Para isto basta digitar

ci programa

onde ci significa ckeck in RCS revisions. Em resposta ao comando acima, o RCS solicita a descrição do programa especificado. Para encerrar a descrição, basta utilizar um ponto em uma linha isolada ou utilizar Ctrl+D. O RCS então apaga o arquivo original e cria um novo arquivo com mesmo nome e extensão ",v". Este arquivo é somente para leitura e é maior que o arquivo original porque o sistema RCS acrescenta algumas informações adicionais a esse arquivo tais como versão, descrição recentemente digitada, histórico de alteração, etc. Para que uma cópia do arquivo (apenas para leitura) seja deixado pelo RCS no diretório, basta usar a opção -u, ou seja,

ci -u programa

É também possível definir o número da versão que o RCS armazenará o arquivo. Por exemplo,

ci -r2.0 programa

define que o número da nova versão é 2.0. O RCS não aceita um número de versão menor que o número da última versão gravada.

Para obter uma cópia de trabalho de um arquivo gerenciado pelo RCS, deve-se digitar

co programa

onde co significa ckeck out RCS revisions. Esta cópia entretando é apenas para leitura. Para obter uma cópia do arquivo para alteração e bloqueiar o acesso a esse arquivo por parte dos outros usuários, basta digitar

co -l programa

Pode-se também recuperar uma determinada versão do programa gravado pelo RCS. Por exemplo,

co -r2.0 programa

recupera a versão 2.0 do programa especificado.

Para desbloquear um arquivo sem fazer nenhuma alteração, deve-se digitar

rcs -u arquivo

Para verificar quais as alterações existentes entre a última versão gravada do programa pelo RCS e a versão atual no seu diretório, digite

rcsdiff programa

Por exemplo, a seguinte saída

11d10
< ******
15a15,16
> #include "def2.h"
> #include "def3.h"

informa que a linha 11 do arquivo original foi removida e que duas novas linhas, 15 e 16, foram incluidas no arquivo. É também possível verificar as diferenças existentes entre duas versões de um arquivo RCS. Por exemplo,

rcsdiff -r2.0 -r1.0 teste.c

lista as diferenças existentes entre a versão 2.0 e a versão 1.0 do arquivo teste.c gerenciado pelo RCS.

Para obter o histórico das alterações de um arquivo RCS, basta digitar

rlog programa

Para apagar todos os arquivos RCS, em um diretório, que não estão bloqueados para alteração (apenas leitura), pode-se usar o seguinte comando:

rcsclean

Uma forma de organizar os arquivos gerenciados pelo RCS é criar um subdiretório (dentro do diretório dos arquivos RCS) com o nome RCS e mover todos os arquivos RCS para este novo subdiretório. Ao usar o comando ci ou co, o RCS passará a usar este subdiretório como padrão para armazenamento e recuperação de arquivos RCS.

Palavras-chave do RCS

É possível documentar o código-fonte usando as informações armazenadas pelo RCS. São exemplos de palavras-chave conhecidas pelo RCS:

$Author$ : identificação do usuário da última revisão.

$Date$ : data e hora da última revisão.

$Id$ : nome do arquivo, versão, data e hora da atualização, autor e estado do programa no gerenciamento do RCS.

$Log$ : mensagem de log gerada durante a verificação.

$Revision$ : número da versão do arquivo.

$Source$ : caminho completo do arquivo RCS.

Quando alguma destas palavras é usada no código-fonte, o RCS a substitui automaticamente durante a verificação do arquivo (comando ci). Portanto, quando estas palavras são usadas dentro de códigos de programas compiláveis, é importante que sejam definidas dentro de comentários. Por exemplo, podemos definir em um programa C:

/*
$Id$
$Log
*/

Mas também é possível utilizar estas informações dentro de um programa C. Para isto basta definir uma string. Por exemplo,

static const char rcsid[] = "$Id$";

Para verificar quais as palavras-chave são usadas em um arquivo RCS, podemos digitar

ident arquivo
Observações

O RCS gerencia os programas apenas localmente, ou seja, dentro de um determinado diretório. O CVS (Concurrent Versions System) é uma ferramenta construída sobre a estrutura do RCS e que opera sobre uma rede.

Para ver a documentação online do RCS, digite

man rcsintro