Duas das ferramentas essenciais no desenvolvimento de software são Remendo y Dif. Não é um mistério como eles funcionam, mas acho que este será um post interessante.
Ambos são muito poderosos, e isso é como tocar a superfície, eles têm mais utilidades e outras funções. Basicamente, com essas duas ferramentas, podemos criar controle de versão,
Dif
Referimo-nos à comparação, ela compara um arquivo "original" com o "novo" e nos informa das diferenças que existem entre eles. Essa ferramenta também nos permite criar arquivos .patch que usamos para criar patches para nossos programas.
Remendo
É o comando com o qual literalmente "corrigimos" nosso arquivo original, adicionando e / ou removendo linhas de acordo com as instruções contidas no arquivo .patch
Há também vimdiff, que é uma ferramenta visual para aplicar patches sem a necessidade de um arquivo .patch, pois compara "original" e "novo" e no mesmo arquivo é possível editar linha por linha ou todo o documento. Não vou explicar isso, mas acho que merece uma menção.
Exemplo
Agora a diversão é. Exemplo!
Este é o caso, temos um ótimo roteiro que pergunta seu nome e sua idade, se você for maior de 18 anos ele diz que você pode votar, caso contrário, ele diz que você não pode votar.
original.sh
#! / bin / bash echo "Digite seu nome:" ler nome echo "Digite sua idade:" ler idade if [[18 -lt $ idade]] então echo "Olá $ name, você tem $ old e pode votar! " else echo "Olá $ name, você tem $ old e não pode votar ..." fi
Imagem do código no Vim
Pronto, aqui está o script em execução:
tudo parece estar funcionando bem
Então, como bons usuários que somos, compartilhamos nosso script com um amigo :), mas recebemos uma mensagem dizendo que tem uma falha, que quando tem 18 anos diz que não pode votar quando deveria.
Erro lógico
Agora vamos começar a corrigir o pequeno erro e fazer algumas modificações ...
new.sh
#! / bin / bash maxAge = 18 echo "Digite seu nome:"; ler o nome echo "Escreva a sua idade:"; ler idade se [[$ maxAge -le $ idade]]; em seguida, echo "Olá $ name, você tem $ anos e pode votar!" else echo "Olá, $ name, você tem $ anos e não pode votar ..." fi exit 0
Novo código escrito em Vim
Suponha que o script seja muito pesado. Então, para não enviar o script inteiro novamente, criamos um .patch
$ diff -u original.sh new.sh> patch.patch
E agora temos nosso patch. Aqui está uma visão sobre Vim:
Esta é a aparência das instruções para um .patch. Em branco as linhas que não foram modificadas, em azul as removidas e em laranja as adicionadas.
E para aplicá-lo, simplesmente usamos o arquivo .patch no script a ser corrigido. Aqui é chamado originalAmigo.sh, que é uma cópia exata do script original.sh
Script de amigo
$ patch originalFriend.sh <patch.patch
E isso nos deixa nosso arquivo originalAmigo.sh Assim:
Script de amigo após aplicar patch
Como você pode ver, é muito fácil obter os diffs e aplicar os patches. É tudo meu.
Saudações pessoal, leremos na próxima sexta-feira.