Den första utgåvan av elfshaker-projektet har publicerats. Det utvecklar ett versionskontrollsystem för binära filer optimerat för att spåra ändringar i ELF-körbara filer. Systemet lagrar binära patchar mellan filer och möjliggör hämtning av önskad version med nyckel, vilket avsevärt snabbar upp "git bisect"-operationen och minskar diskutrymmesanvändningen avsevärt. Projektets kod distribueras under Apache 2.0-licensen.
Programmet är anmärkningsvärt för sin höga effektivitet när det gäller att lagra binära ändringar i ett stort antal liknande binära filer, till exempel de som erhålls under inkrementella byggnader av ett enda projekt. I synnerhet kan resultaten av tvåtusen ombyggnationer av Clang-kompilatorn (varje ombyggnad återspeglar förändringen efter varje commit) lagras i en enda packfil, 100 MB i storlek, vilket är 4000 gånger mindre än vad som skulle krävas om det lagras separat.
Att extrahera valfritt tillstånd från den här filen tar 2-4 sekunder (60 gånger snabbare än att köra "git bisect" på LLVM-kod), vilket gör att du snabbt kan extrahera önskad version av ditt projekts körbara filer utan att bygga om från källan eller lagra en kopia av varje version av en tidigare byggd körbar fil.
Källa: opennet.ru
