The first release of the elfshaker project has been published, which develops a version management system for binary files optimized for tracking changes in ELF format executable files. The system stores binary patches between files and allows retrieving the required version by key, significantly speeding up the 'git bisect' operation and greatly reducing the amount of disk space used. The project's code is distributed under the Apache-2.0 license.
The program is notable for its high efficiency in storing binary changes across a large number of similar binary files, such as those obtained during the incremental builds of a single project. In particular, the results of two thousand Clang compiler rebuilds (each rebuild reflecting a change after each commit) can be saved in a single 100 MB pack file, which is 4000 times less than would be required for separate storage.
Extracting any state from this file takes 2-4 seconds (60 times faster than the 'git bisect' operation on LLVM code), allowing for quick retrieval of the required version of the project's executable files without rebuilding from source or storing a copy of each previously built executable version.
Source: opennet.ru
