Eu uso o xdelta para esse propósito, outros usam o rdiff. Ambos funcionam bem.
Como parte do meu trabalho, eu regularmente preciso fazer upload de arquivos grandes (um ISO de 512 MB para 1 GB, por exemplo). Em alguns casos, muito poucas alterações de ISO para ISO (digamos, um arquivo de 10 MB em um ISO de 1 GB). Infelizmente, não posso simplesmente enviar o arquivo alterado - preciso enviar o ISO inteiro. Uma conexão mais rápida não é uma solução válida.
Existe alguma ferramenta (preferencialmente Linux, preferencialmente livre) que possa fazer e aplicar diffs de tais arquivos binários grandes?
O BSDiff é mais eficiente.
link "bsdiff e bspatch são ferramentas para construir e aplicar patches em arquivos binários. Usando a ordenação de sufixo (especificamente, o qsufsort de Larsson e Sadakane) e aproveitando como os arquivos executáveis mudam, o bsdiff rotineiramente produz patches binários 50-80% menores que os produzidos por Xdelta, e 15% menor do que as produzidas pelo .RTPatch (uma ferramenta de patch comercial de $ 2750 / assento). "
Usamos o rdiff para replicar instantâneos de banco de dados para um servidor de backup em escritórios remotos a cada hora. Está funcionando muito bem há vários meses.
Todas as suas necessidades são rdiff e cygwin1.dll e você está pronto para usar.
É possível rsync os arquivos? Isto irá encontrar uma pequena diferença binária.