Ang proyekto ng elfshaker ay bumubuo ng isang bersyon ng control system para sa mga ELF file.

Na-publish na ang unang release ng elfshaker project, isang binary version control system na na-optimize para sa pagsubaybay sa mga pagbabago sa mga ELF executable. Ang system ay nag-iimbak ng mga binary patch sa pagitan ng mga file, nagbibigay-daan sa iyo upang makuha ang nais na bersyon sa pamamagitan ng key, na makabuluhang nagpapabilis sa "git bisect" na operasyon at lubos na binabawasan ang dami ng disk space na ginamit. Ang code ng proyekto ay ipinamahagi sa ilalim ng lisensya ng Apache-2.0.

Ang programa ay kapansin-pansin para sa mataas na kahusayan nito sa pag-iimbak ng mga binary na pagbabago sa isang malaking bilang ng mga katulad na binary file, halimbawa, na nakuha sa panahon ng mga incremental na build ng isang proyekto. Sa partikular, ang mga resulta ng dalawang libong muling pagtatayo ng Clang compiler (bawat muling pagtatayo ay sumasalamin sa pagbabago pagkatapos ng bawat commit) ay maaaring maimbak sa isang solong pack file na 100 MB ang laki, na 4000 beses na mas maliit kaysa sa kung ano ang kakailanganin kung iimbak nang hiwalay. .

Ang pag-extract ng anumang estado mula sa isang naibigay na file ay tumatagal ng 2-4 na segundo (60 beses na mas mabilis kaysa sa git bisecting LLVM code), na nagbibigay-daan sa iyong mabilis na i-extract ang gustong bersyon ng mga executable ng isang proyekto nang hindi muling binubuo mula sa pinagmulan o nag-iimbak ng kopya ng bawat bersyon ng isang naunang ginawa. maipapatupad.

Pinagmulan: opennet.ru

Magdagdag ng komento