Monday 31 July 2017

Opções Binárias Do Google-Diff-Match-Patch


Deixe-me começar com abordagens testadas e verdadeiras, em seguida, apontar algumas abordagens mais recentes. Abordagens que eu vi trabalhar com arquivos binários Há muito tempo, as pessoas expandiram as versões antigas e novas de um arquivo binário em arquivos de texto temporários (cada byte expandido para 3 bytes: 2 dígitos hexadecimais e uma nova linha). Em seguida, execute esses dois arquivos de texto através de uma versão antiga do diff (que definitivamente não poderia lidar com arquivos binários) para fazer um arquivo de patch. Em seguida, transmitimos esse arquivo de patch de texto por linhas de comunicação que ainda não estavam limpas a 8 bits. Na extremidade de recebimento, um expandiu o arquivo binário antigo para uma versão de texto temporário, depois corrigiu esse arquivo de texto antigo e, em seguida, compactou o novo arquivo de texto novamente em um arquivo binário (compactando cada par de dígitos hexadecimais em um byte e jogando fora As linhas de nova linha e quaisquer retornos de carro que puderam ter rastejado dentro). Mais recentemente, eu tenho usado rsync (ou algum utilitário construído em cima dele, como Unison). Ele trata arquivos binários arbitrários muito bem. Eu geralmente faço uma atualização ao vivo, com o Unison rodando na minha máquina local e o rsync rodando no servidor de arquivos, falando de um lado para o outro. Não importa como um arquivo de correção é gerado, você pode usar qualquer utilitário de compactação de dados para compactar esse arquivo. Abordagens que, tanto quanto eu sei, deve funcionar com arquivos binários Outra questão StackOverflow implica que vimdiff parece lidar com bytes arbitrários adequadamente. Ouvi dizer que algumas ferramentas baseadas em rsync - rdiff e rdiff - backup e duplicidade - permitem que você crie um arquivo de patch. Em seguida, uma pessoa que recebe esse arquivo de patch pode usá-lo para atualizar seu arquivo binário antigo para um novo arquivo binário. A Wikipédia alega que versões recentes dos utilitários de dif e patch padrão suportam arquivos binários. Você já tentou essa pesquisa de ponta em compressão de arquivos executáveis ​​Se você está interessado em pesquisa de ponta sobre como fazer o arquivo delta tão pequeno quanto possível ao atualizar arquivos executáveis, você vai querer verificar Como funciona Courgette por Stephen Adams 2009 no The Chromium Projetos. Entre outras coisas, o computador que recebe o patch desmonta o aplicativo antigo, convertendo todos os endereços e deslocamentos absolutos em símbolos, em seguida, patches o código desmontado, em seguida, remonta o código patched na nova versão do aplicativo.

No comments:

Post a Comment