Este guia fornece uma visão geral básica para aplicar um patch a um programa ou arquivo.
O comando usado para aplicar os patches é o comando patch, mas para aplicar um patch, o comando diff também precisa ser usado para fornecer as diferenças que precisam ser corrigidas.
Por que você criaria um patch
Imagine que você tenha um arquivo HTML da seguinte forma:
Bem vindo ao MySite
A fonte acima, quando carregada em um navegador da Web, mostrará as palavras "Bem-vindo ao MySite".
É comum quando se programa para que haja várias versões do mesmo arquivo. Por exemplo, haveria uma versão que é a versão ao vivo atual, haveria outra versão no ramo de desenvolvimento que pode conter várias alterações, finalmente, pode haver outra versão em um ramo de lançamento.
O ramo de lançamento seria a versão usada por usuários reais (ou seja, neste caso, os visitantes do site MySite). Vamos dizer que o MySite está na versão 1.0. Depois de uma fase de desenvolvimento, você criará um branch de release que seria, neste caso, 1.1. A ramificação de desenvolvimento estará à frente da ramificação do release, pois ela pode conter alterações que não devem ser lançadas na versão 1,2, mas serão para a versão 1.1.
Imagine que houve um bug pelo qual o MySite deveria ser chamado de YourSite. Você poderia ir para cada filial e fazer alterações na versão ao vivo, na versão de desenvolvimento e na versão de lançamento de você poderia fazer a alteração como um hotfix em tempo real e, em seguida, aplicar o patch nas ramificações de desenvolvimento e lançamento.
Um exemplo trabalhado
Crie um arquivo chamado myfile.html com o seguinte código:
Bem vindo ao MySite
Este é um exemplo trabalhado de correção de código-fonte.
Crie outro arquivo chamado myfile_v2.html com o seguinte código:
Seja bem-vindo ao YourSite
Este é um exemplo trabalhado de correção de código-fonte.
O primeiro arquivo é a página da web original com o título "Welcome to MySite". O segundo arquivo é o mesmo que o primeiro arquivo, exceto MyFile é renomeado para YourFile no texto.
Como criar o arquivo Diff
Para criar um patch, precisamos descobrir as diferenças entre myfile.html e myfile_v2.html.
Podemos fazer isso com o comando diff da seguinte forma:
diff -u myfile.html myfile_v2.html> myfile.patch
Você pode abrir o arquivo myfile.patch no editor nano da seguinte maneira para visualizá-lo: nano myfile.patch
Linhas inalteradas são mostradas em azul. As linhas que foram removidas são mostradas em vermelho e as linhas que foram adicionadas são mostradas em verde. Para aplicar o patch a myfile.html, use o seguinte comando: patch <myfile.patch Isso aplicará as alterações criadas usando o comando diff no arquivo original myfile.html. Se você quiser reverter o patch para que myfile.html volte ao estado original, use o seguinte comando: patch -R <myfile.patch O comando patch pode ser usado para aplicar correções em toda a estrutura de diretórios. Existem ferramentas muito melhores do que o comando patch para criar patches e garantir um bom controle de origem. Há uma razão para tantos projetos de desenvolvimento usarem o GIT para controle de origem. O GIT facilita a criação de uma estratégia de ramificação consistente. O comando patch está ok para aplicar diferenças a um script bash ou algo simples, mas você pode facilmente criar uma cópia de backup dos arquivos que deseja corrigir e simplesmente copiar os novos arquivos para o mesmo local. Para mais informações, use o comando man: remendo do homem Como aplicar o patch usando o comando patch
Como reverter um patch
Resumo