Se ha publicado el primer lanzamiento del proyecto elfshaker, que desarrolla un sistema de control de versiones para archivos binarios, optimizado para rastrear cambios en archivos ejecutables en formato ELF. El sistema almacena parches binarios entre archivos, permite extraer la versión requerida por clave, lo que acelera significativamente la operación «git bisect» y reduce mucho el espacio de disco utilizado. El código del proyecto se distribuye bajo la licencia Apache-2.0.
El programa es notable por su alta eficiencia en el almacenamiento de cambios binarios en un gran número de archivos binarios similares, por ejemplo, aquellos obtenidos en el proceso de compilaciones incrementales de un mismo proyecto. En particular, los resultados de dos mil recompilaciones del compilador Clang (cada recompilación refleja un cambio tras cada commit) pueden guardarse en un archivo pack de 100 MB, lo que es 4000 veces menor que lo que se necesitaría si se almacenaran por separado.
Extraer cualquier estado de este archivo toma de 2 a 4 segundos (60 veces más rápido que la operación «git bisect» sobre el código LLVM), lo que permite recuperar rápidamente la versión requerida de los archivos ejecutables del proyecto sin recompilar desde los códigos fuente o almacenar una copia de cada versión del archivo ejecutable compilado anteriormente.
Fuente: opennet.ru
