De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 29 de junho de 2011
O site Dicas-L e todos os outros sites que mantenho (Contando Histórias, Aprendendo Inglês, Inglês Instrumental e Edulinks), são todos feitos com shell scripts e o genial txt2tags, escrito pelo não menos genial Aurélio Jargas.
Para evitar confusões, eu uso um software para controle de versões, o RCS. Além do controle de versões, é importante saber o que mudou de uma versão para outra. Com o RCS isto pode ser feito de uma forma muito simples, com a inclusão, no código do programa, da seguinte linha:
# $Log$
A variável $Log será expandida exibindo, dentro do código, todo o histórico de revisões do programa.
Exemplo:
#!/bin/bash # $Log$ while read arquivo do echo $arquivo done < arquivos.txt
Vamos simular alguns passos. Para usar o RCS, precisamos criar um diretório chamado RCS dentro do diretório onde está o nosso código:
mkdir RCS
Em seguida, colocamos o código de nosso programa ou shell script sob o controle do RCS:
ci shell.sh RCS/shell.sh,v <-- shell.sh enter description, terminated with single '.' or end of file: NOTE: This is NOT the log message! >> Programa para demonstrar o uso do RCS >> . initial revision: 1.1 done
Isto feito, podemos começar a trabalhar com o programa. Para isto, usamos o comando co
, abreviação para check out
.
% co -l shell.sh RCS/shell.sh,v --> shell.sh revision 1.1 (locked) done
Podemos proceder agora fazendo as alterações necessárias no programa. A opção -l
significa lock, ou seja, a edição do programa fica bloqueada a outros usuários. Ao final da edição, colocamos novamente o programa sob o controle do RCS, registrando o que foi feito:
% ci -u shell.sh RCS/shell.sh,v <-- shell.sh new revision: 1.2; previous revision: 1.1 enter log message, terminated with single '.' or end of file: >> Inclusão do laço de leitura do nome dos arquivos >> . done
Precisamos agora extrair uma cópia do programa para uso, mas protegida contra gravação:
% co shell.sh RCS/shell.sh,v --> shell.sh revision 1.2 done
Vamos agora examinar o conteúdo do arquivo:
% cat shell.sh #!/bin/bash # $Log: shell.sh,v $ # Revision 1.2 2011/06/28 19:03:14 queiroz # Inclusão do laço de leitura do nome dos arquivos # while read arquivo do echo $arquivo done < arquivos.txt
Podemos ver que o comentário inserido aparece no corpo do programa. A variável $Log foi expandida para indicar o nome do arquivo (shell.sh,v
), a versão (Revision 1.2
), data e hora da modificação (2011/06/28 19:03:14
) e o nome do autor das mudanças (queiroz
). Finalmente, temos o comentário descrevendo as mudanças realizadas (Inclusão do laço de leitura do nome dos arquivos
).
Existem outras variáveis que podem ser incluídas no código, como por exemplo $Author$, $Date$, e várias outras. A lista completa pode ser consultada na documentação (man ident).
Existem soluções mais sofisticadas para controle de versões, mas para sistemas pequenos, como o conjunto de scripts da Dicas-L, funciona super bem, permite saber o que cada versão faz, e impede a edição de forma inadequada dos arquivos.
Para saber mais sobre RCS, consulte o documento "The RCS MINI-HOWTO".
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários