Opublikowano pierwszy numer projektu elfshaker, rozwijającego system zarządzania wersjami dla plików binarnych, zoptymalizowany do śledzenia zmian w plikach wykonywalnych w formacie ELF. System przechowuje binarne poprawki między plikami, umożliwiając wydobycie potrzebnej wersji za pomocą klucza, co znacznie przyspiesza wykonywanie operacji „git bisect” i znacznie zmniejsza rozmiar wykorzystywanej przestrzeni dyskowej. Kod projektu jest rozpowszechniany na licencji Apache-2.0.
Program wyróżnia się wysoką efektywnością przechowywania binarnych zmian w dużej liczbie podobnych plików binarnych, na przykład uzyskanych w trakcie inkrementalnych kompilacji jednego projektu. W szczególności wyniki dwóch tysięcy przebudów kompilatora Clang (każda przebudowa odzwierciedla zmianę po każdym zatwierdzeniu) mogą być zapisane w jednym pliku pakietowym o rozmiarze 100 MB, co jest 4000 razy mniej niż potrzebne w przypadku oddzielnego przechowywania.
Wydobycie dowolnego stanu z danego pliku zajmuje 2-4 sekundy (60 razy szybciej niż operacja „git bisect” na kodzie LLVM), co pozwala na szybkie wydobycie potrzebnej wersji plików wykonywalnych projektu bez konieczności ich ponownego kompilowania z kodu źródłowego czy przechowywania kopii każdej wersji wcześniej skompilowanego pliku wykonywalnego.
Źródło: opennet.ru
