LG_jc.gif (3670 bytes)
 






Atualizada às terças

Atualizando documentos

Quantas vezes atualizamos documentos e depois nos perguntamos "que alterações eu fiz nesse documento da última vez?".  O Unix dispõe de um vasto rol de ferramentas para o controle de versão de documentos. 

Evidentemente, essas ferramentas têm maior utilidade quando o documento é uma arquivo texto, pois na maioria das vezes arquivos em binário - como a maioria dos arquivos gerados por processadores de texto - são difíceis de serem comparados e visualizados. 

Tipicamente, usamos essas ferramentas com fontes de programas, mas também com aquela página HTML que você está projetando, ou a resposta a um e-mail de um
amigo. Tudo funciona melhor quando temos acesso ao texto do documento.

Uma forma comum de serem distribuídas alterações em programas são as chamadas "patch-files", ou arquivos, como por exemplo "patch-0.8-0.9", que em notação
convencional significa um remendo que deixará a versão 0.8 do documento igual à versão 0.9. Um mesmo "patch-file" pode conter alterações em vários arquivos de
uma hierarquia de diretórios.  Por que usar esse "patch-file" e não simplesmente enviar todo o arquivo corrigido? Muitas vezes as modificações são pequenas e ganha-se muito em tempo e espaço ocupado quando enviamos apenas as correções. 

Aplicando-se essas correcões com o comando "patch -p0 <patch-0.8-0.9", faremos a conversão. O "-p0" indica que devermos modificar os arquivos no mesmo diretório aonde se encontravam quando o autor do "patch" o criou. Podemos eliminar níveis dessa hierarquia colocando números maiores. Por exempo, se o arquivo original salvo se encontrava em "/home/rildo/artigos/conexao/patch.txt",
"-p3" tomará somente o caminho "artigos/conexao/patch.txt", enquanto que "-p1" tomará o caminho "home/rildo/artigos/conexao/patch.txt".

A aplicação desse patch é bastante simples e cada arquivo (digamos texto.txt) modificado será renomeado como texto.txt.orig. Caso algo não consiga ser modificado porque há diferença de contexto entre o original e o patch, as alterações não relaizadas serão salvas no texto.txt.rej (lembra rejeitos). Assim você poderá examinar o que não foi possível modificar, provavelmente devido a alguma edição que você fez no arquivo antes de produzir o arquivo de patch.  A propósito, esse arquivo de patch é também chamado de "diff-file" ou arquivo de diferenças, porque ele provêm da execução do comando que o produz, "diff", mas isso será o assunto da próxima semana. Futuramente falaremos também sobre o rcs, o prcs e o cvs. Cada um tem seus atributos e são interessantes de se empregar quando editamos muitas vezes uma coleção de textos. Esse conhecimento é indispensável se você já é ou pretende ser um programador.

Da próxima vez que você for atualizar o seu kernel ou o seu programa favorito, veja o tamanho de um "patch-file" ou "diff-file" e decida por você mesmo se prefere baixar toda a nova versão ou aprender de uma vez a usar esse comando tão simples e economizar o seu tempo e a linha telefônica...


Anteriores

Programando um cliente de e-mail (IV) (26/10/1999)
Programando um cliente de e-mail (III) (19/10/1999)
Programando um cliente de e-mail (II)
(12/10/1999)
Programando um cliente de e-mail (I)
(05/10/1999)
Visual Tcl Parte 3
(28/09/1999)
Visual Tcl Parte 2
(21/09/1999)
O Visual Tcl 
(14/09/99)
Programando para Linux (08/09/1999)