Il progetto elfshaker sta sviluppando un sistema di controllo della versione per i file ELF.

È stata pubblicata la prima versione del progetto elfshaker, un sistema di controllo della versione binaria ottimizzato per tenere traccia delle modifiche agli eseguibili ELF. Il sistema memorizza patch binarie tra file, consente di recuperare la versione desiderata tramite chiave, il che accelera notevolmente l'operazione "git bisect" e riduce notevolmente la quantità di spazio su disco utilizzato. Il codice del progetto è distribuito sotto la licenza Apache-2.0.

Il programma si distingue per la sua elevata efficienza nell'archiviazione delle modifiche binarie in un gran numero di file binari simili, ad esempio ottenuti durante le build incrementali di un progetto. In particolare, i risultati di duemila ricostruzioni del compilatore Clang (ogni ricostruzione riflette la modifica dopo ogni commit) possono essere archiviati in un unico file pack di 100 MB di dimensione, che è 4000 volte più piccolo di quanto sarebbe necessario se archiviato separatamente .

L'estrazione di qualsiasi stato da un determinato file richiede 2-4 secondi (60 volte più veloce rispetto al codice LLVM diviso in due da git), consentendo di estrarre rapidamente la versione desiderata degli eseguibili di un progetto senza ricostruire dal sorgente o archiviare una copia di ciascuna versione di un file creato in precedenza eseguibile.

Fonte: opennet.ru

Aggiungi un commento