The elfshaker project develops a version control system for ELF files

The first release of the elfshaker project, which develops a binary version control system optimized for tracking changes in ELF executable files, has been published. The system stores binary patches between files, allows you to extract the desired version by key, which greatly speeds up the "git bisect" operation and greatly reduces the amount of disk space used. The project code is distributed under the Apache-2.0 license.

The program is notable for its high efficiency of storing binary changes in a large number of similar binary files, for example, obtained during incremental builds of one project. In particular, the results of two thousand rebuilds of the Clang compiler (each rebuild reflects the change after each commit) can be stored in a single 100 MB pack file, which is 4000 times smaller than would be required if stored separately.

Extracting any state from this file takes 2-4 seconds (60 times faster than a "git bisect" operation on LLVM code), which allows you to quickly extract the desired version of the project executables without rebuilding from sources or storing a copy of each version of the previously built executable.

Source: opennet.ru

Add a comment