bsdiff e bspatch: diff e patch binários!
Publicado em Developer
Puxa, essa eu não conhecia. Um diff e patch que funcionam em arquivos binários! Fique sabendo deles através do post do Jesse Ruderman sobre o Firefox 1.5, pois é o que está sendo utilizado para as upgrades incrementais.
Fiz um teste aqui, com um programa pequeno. Peguei os fontes na página do projeto, compilei, instalei e fiz um "hello, world!" da vida, em C:
#include <stdio.h> int main(void){ printf("Hello world!\n"); return 0; }
Compilei e pedi para salvar o executável como helloworld:
[taq@~/code/c]gcc -o helloworld helloworld.c [taq@~/code/c]./helloworld Hello world!
Agora alterei um pouco o fonte:
#include <stdio.h> int main(void){ printf("Hello new world!\n"); return 0; }
Compilei e pedi para salvar o executável como hellonewworld:
[taq@~/code/c]gcc -o hellonewworld helloworld.c [taq@~/code/c]./hellonewworld Hello new world!
Agora que vem a parte legal: acionei o bsdiff
para criar um patch binário entre helloworld e hellonewworld, o qual gravei como hello.patch, apliquei em helloworld, salvando o resultado como helloworld (sobreescrevendo o original), e rodei:[taq@~/code/c]bsdiff helloworld hellonewworld hello.patch [taq@~/code/c]bspatch helloworld helloworld hello.patch [taq@~/code/c]./helloworld Hello new world!
Uau! Patch binário aplicado!
Comentários
Comentários fechados.
Sem nenhum comentário.
Artigos anteriores
- Pull requests em modo raiz - sex, 22 de dezembro de 2023, 09:57:09 -0300
- Qual a idade do seu repositório? - ter, 27 de dezembro de 2022, 12:50:35 -0300
- Utilizando ctags em projetos Rails mais recentes - qui, 24 de junho de 2021, 08:23:43 -0300
- Fazendo o seu projeto brotar - seg, 15 de julho de 2019, 08:57:05 -0300
- Learn Functional Programming with Elixir - sex, 02 de março de 2018, 18:47:13 -0300
- Ambiente mínimo - Driver Driven Development - qua, 23 de agosto de 2017, 15:15:03 -0300
- Ambiente mínimo - repositórios de código - dom, 16 de abril de 2017, 13:02:14 -0300
- Ambiente mínimo - terminal e navegador - dom, 02 de abril de 2017, 21:43:29 -0300
- Utilizando muitas gems no seu projeto? - sáb, 29 de outubro de 2016, 11:57:55 -0200
- Desenvolvedores e inteligência artificial - seg, 11 de julho de 2016, 09:09:38 -0300