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

Опубліковано перший випуск проекту elfshaker, що розвиває систему управління версіями для двійкових файлів, оптимізовану для відстеження змін у файлах, що виконуються у форматі ELF. Система зберігає бінарні патчі між файлами, дозволяє отримувати потрібну версію за ключом, що значно прискорює виконання операції «git bisect» і сильно скорочує розмір дискового простору, що використовується. Код проекту розповсюджується під ліцензією Apache-2.0.

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

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

Джерело: opennet.ru

Додати коментар або відгук