Праект elfshaker развівае сістэму кантролю версій для ELF-файлаў

Апублікаваны першы выпуск праекту elfshaker, які развівае сістэму кіравання версіямі для двайковых файлаў, аптымізаваную для адсочвання змен у выкананых файлах у фармаце ELF. Сістэма захоўвае бінарныя патчы паміж файламі, дазваляе здабываць патрэбную версію па ключы, што значна паскарае выкананне аперацыі "git bisect" і моцна скарачае памер выкарыстоўванай дыскавай прасторы. Код праекту распаўсюджваецца пад ліцэнзіяй Apache-2.0.

Праграма характэрна высокай эфектыўнасцю захоўвання бінарных змен у вялікім ліку падобных бінарных файлаў, напрыклад, атрыманых падчас інкрыментальных зборак аднаго праекту. У прыватнасці, вынікі дзвюх тысяч перазборак кампілятара Clang (кожная перазборка адлюстроўвае змену пасля кожнага комміта) могуць быць захаваны ў адным pack-файле, памерам 100 МБ, што ў 4000 разоў менш, чым запатрабавалася бы пры паасобным захоўванні.

Выманне любога стану з дадзенага файла займае 2-4 секунды (у 60 разоў хутчэй аперацыі «git bisect» над кодам LLVM), што дазваляе хутка атрымаць патрэбную версію выкананых файлаў праекту без перазборкі з зыходных тэкстаў ці захоўванні копіі кожнай версіі раней сабранага выкананага файла.

Крыніца: opennet.ru

Дадаць каментар