Het elfshaker-project ontwikkelt een versiebeheersysteem voor ELF-bestanden.

De eerste release van het elfshaker-project, een binair versiebeheersysteem dat is geoptimaliseerd voor het volgen van wijzigingen in ELF-uitvoerbare bestanden, is gepubliceerd. Het systeem slaat binaire patches tussen bestanden op, waardoor u de gewenste versie per sleutel kunt ophalen, wat de “git bisect” -bewerking aanzienlijk versnelt en de hoeveelheid gebruikte schijfruimte aanzienlijk vermindert. De projectcode wordt gedistribueerd onder de Apache-2.0-licentie.

Het programma valt op door zijn hoge efficiëntie bij het opslaan van binaire wijzigingen in een groot aantal vergelijkbare binaire bestanden, bijvoorbeeld verkregen tijdens incrementele builds van één project. In het bijzonder kunnen de resultaten van tweeduizend herbouwingen van de Clang-compiler (elke herbouw weerspiegelt de verandering na elke commit) worden opgeslagen in een enkel pakketbestand van 100 MB groot, wat 4000 keer kleiner is dan wat nodig zou zijn als het afzonderlijk zou worden opgeslagen. .

Het extraheren van welke status dan ook uit een bepaald bestand duurt 2-4 seconden (60 keer sneller dan git die LLVM-code in tweeën deelt), waardoor je snel de gewenste versie van de uitvoerbare bestanden van een project kunt extraheren zonder opnieuw vanaf de bron te hoeven bouwen of een kopie van elke versie van een eerder gebouwd bestand op te slaan uitvoerbaar.

Bron: opennet.ru

Voeg een reactie