Το έργο elfshaker αναπτύσσει ένα σύστημα ελέγχου έκδοσης για αρχεία ELF.

Δημοσιεύτηκε η πρώτη έκδοση του έργου elfshaker, ενός συστήματος ελέγχου δυαδικής έκδοσης βελτιστοποιημένο για την παρακολούθηση αλλαγών σε εκτελέσιμα αρχεία ELF. Το σύστημα αποθηκεύει δυαδικές ενημερώσεις κώδικα μεταξύ αρχείων, σας επιτρέπει να ανακτήσετε την επιθυμητή έκδοση με κλειδί, γεγονός που επιταχύνει σημαντικά τη λειτουργία "git bisect" και μειώνει σημαντικά τον χώρο του δίσκου που χρησιμοποιείται. Ο κώδικας του έργου διανέμεται με την άδεια Apache-2.0.

Το πρόγραμμα είναι αξιοσημείωτο για την υψηλή του αποτελεσματικότητα στην αποθήκευση δυαδικών αλλαγών σε μεγάλο αριθμό παρόμοιων δυαδικών αρχείων, για παράδειγμα, που λαμβάνονται κατά τη διάρκεια σταδιακών κατασκευών ενός έργου. Συγκεκριμένα, τα αποτελέσματα δύο χιλιάδων ανακατασκευών του μεταγλωττιστή Clang (κάθε ανακατασκευή αντικατοπτρίζει την αλλαγή μετά από κάθε δέσμευση) μπορούν να αποθηκευτούν σε ένα αρχείο πακέτου μεγέθους 100 MB, το οποίο είναι 4000 φορές μικρότερο από αυτό που θα απαιτούνταν αν αποθηκευτεί χωριστά. .

Η εξαγωγή οποιασδήποτε κατάστασης από ένα δεδομένο αρχείο διαρκεί 2-4 δευτερόλεπτα (60 φορές γρηγορότερα από τον κώδικα LLVM διχοτόμου git), επιτρέποντάς σας να εξαγάγετε γρήγορα την επιθυμητή έκδοση των εκτελέσιμων αρχείων ενός έργου χωρίς να κάνετε ανακατασκευή από την πηγή ή να αποθηκεύσετε ένα αντίγραφο κάθε έκδοσης μιας προηγούμενης κατασκευής εκτελέσιμο.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο