Diff e Patch – Criando um Patch Linux

No artigo de hoje, veremos como utilizar duas ferramentas que podem ser muito úteis no desenvolvimento de software, o diff e o patch. Com esses dois comandos Linux, temos uma forma de atualizar facilmente um arquivo, com base em alterações feitas em outra versão deste arquivo.

O que é patch?

Ao lançar um software, por mais que o mesmo tenha passado por uma bateria de testes e longo período de homologação, ele ainda está sujeito a conter falhas no funcionamento ou mesmo falhas de segurança. Dependendo da urgência e natureza do problema, se faz necessária uma intervenção rápida no software. Assim temos o patch, que em tradução livre significa “correção”, ele é um modo de realizar uma alteração no software de forma simples.

Outro caso onde também  é comum utilizar o patch, é quando são necessárias a implementação de novas funcionalidades, ou mesmo a alteração de funcionalidades existentes em um software, a fim de atender uma demanda de mercado com prontidão. Com isso o patch entra como uma forma de implementar essas modificações de forma rápida no produto.

O uso do patch é comum, pois por vezes criar e implementar um patch é mais rápido e mais barato do que lançar uma outra versão do software com a alteração em questão. Seu uso é muito popular nos jogos eletrônicos, onde um patch pode fazer correções, implementar novos cenários, extensões do jogo, novos personagens e novas skins.

Diff

Depois de entender o que é um patch, vamos ver como criar o patch de um arquivo no Linux. O primeiro passo será utilizar a ferramenta diff, este comando procura por diferenças em arquivos ou em diretórios e os exibe. Para exemplificar nosso artigo vamos utilizar os seguintes arquivos: arquivo_original.txt e arquivo_modificado.txt.

Conteúdo do arquivo: arquivo_original.txt

Arquivo Original

Este é o arquivo original utilizado para exemplo no artigo: Diff e Patch - Criando um Patch Linux do blog Irias.

Este arquivo pode ser por exemplo um código escrito em php no qual você deseja adicionar uma modificação aqui ().

Com o patch isso pode ser realizado facilmente.

Conteúdo do arquivo: arquivo_modificado.txt

Arquivo Original (Modificado pelo patch)

Este é o arquivo original utilizado para exemplo no artigo: Diff e Patch - Criando um Patch Linux do blog Irias.

Este arquivo pode ser por exemplo um código escrito em php no qual você deseja adicionar uma modificação aqui (Modificação precisa).

Modificação adicionada ao arquivo original.

Com o patch isso pode ser realizado facilmente.

Ao utilizar o comando diff ele apresenta as diferenças existentes entre os dois arquivos.

diff arquivo_original.txt arquivo_modificado.txt

Agora para criar um patch basta direcionar a saída do comando diff para um arquivo com a extensão .patch.

diff arquivo_original.txt arquivo_modificado.txt > arquivo_patch.patch

Ao visualizar o conteúdo do arquivo gerado: arquivo_patch.patch temos:

1c1
< Arquivo Original
---
> Arquivo Original (Modificado pelo patch)
5c5,7
< Este arquivo pode ser por exemplo um código escrito em php no qual você deseja adicionar uma modificação aqui ().
---
> Este arquivo pode ser por exemplo um código escrito em php no qual você deseja adicionar uma modificação aqui (Modificação precisa).
> 
> Modificação adicionada ao arquivo original.

Patch

Depois de ter criado nosso arquivo .patch, para o aplicar o patch em nosso arquivo original basta utilizar o comando:

patch arquivo_original.txt arquivo_patch.patch

Com isso atualizamos nosso arquivo original, com base nas alterações feitas em nosso arquivo modificado. Ao visualizar o conteúdo do arquivo original, vamos ver que ele está igual ao conteúdo do arquivo modificado.

Arquivo Original (Modificado pelo patch)

Este é o arquivo original utilizado para exemplo no artigo: Diff e Patch - Criando um Patch Linux do blog Irias.

Este arquivo pode ser por exemplo um código escrito em php no qual você deseja adicionar uma modificação aqui (Modificação precisa).

Modificação adicionada ao arquivo original.

Com o patch isso pode ser realizado facilmente.

No desenvolvimento de software, modificar arquivos de código com o uso de patch pode ser útil quando temos um arquivo, no qual só precisamos aplicar a modificação em um determinado uso, ou mesmo quando não podemos alterar o arquivo original. Por exemplo, ao utilizar um projeto open source, onde precisamos alterar um determinado arquivo, somente para atender nosso caso de uso, podemos criar um patch. Assim ele já tem as alterações que devem ser feitas nesse determinado arquivo, toda vez que esse projeto é utilizado em nosso software.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *