Projekt elfshaker opracowuje system kontroli wersji plików ELF.

Opublikowano pierwszą wersję projektu elfshaker, binarnego systemu kontroli wersji zoptymalizowanego pod kątem śledzenia zmian w plikach wykonywalnych ELF. System przechowuje łatki binarne pomiędzy plikami, umożliwia pobranie żądanej wersji po kluczu, co znacznie przyspiesza operację „git bisect” i znacznie zmniejsza ilość wykorzystywanego miejsca na dysku. Kod projektu jest rozpowszechniany na licencji Apache-2.0.

Program wyróżnia się wysoką wydajnością przechowywania zmian binarnych w dużej liczbie podobnych plików binarnych, na przykład uzyskanych podczas przyrostowych kompilacji jednego projektu. W szczególności wyniki dwóch tysięcy przebudowań kompilatora Clang (każda przebudowa odzwierciedla zmianę po każdym zatwierdzeniu) można zapisać w pojedynczym pliku pakietu o rozmiarze 100 MB, czyli 4000 razy mniejszym niż to, co byłoby wymagane, gdyby były przechowywane osobno .

Wyodrębnianie dowolnego stanu z danego pliku zajmuje 2-4 sekundy (60 razy szybciej niż git dzielący kod LLVM na pół), co pozwala szybko wyodrębnić żądaną wersję plików wykonywalnych projektu bez konieczności przebudowywania ze źródła lub przechowywania kopii każdej wersji wcześniej zbudowanego wykonywalny.

Źródło: opennet.ru

Dodaj komentarz