Η Epic Games κυκλοφόρησε ένα σύστημα ελέγχου εκδόσεων για το Lore.

Η Epic Games έχει διαθέσει σε ανοιχτό κώδικα το κεντρικό σύστημα ελέγχου εκδόσεων, Lore, το οποίο προηγουμένως περιλαμβανόταν στο κιτ εργαλείων Unreal Editor for Fortnite (UEFN) με την ονομασία Unreal Revision Control. Το σύστημα έχει βελτιστοποιηθεί για χρήση στην ανάπτυξη έργων που συνδυάζουν τον πηγαίο κώδικα με πολύ μεγάλα αρχεία εκτός κειμένου. Για παράδειγμα, το Lore είναι κατάλληλο για ανάπτυξη παιχνιδιών υπολογιστή, η οποία απαιτεί συνεργατική εργασία σε στοιχεία όπως υφές, τρισδιάστατα μοντέλα και δεδομένα ήχου. Δεδομένου ότι η συγχώνευση διαφορετικών εκδόσεων αρχείων εκτός κειμένου είναι προβληματική, η συνεργασία οργανώνεται ορίζοντας ένα αποκλειστικό κλείδωμα, εμποδίζοντας πολλούς συντελεστές να επεξεργάζονται ταυτόχρονα τον πόρο. Ο κώδικας του έργου είναι γραμμένος σε Rust και διανέμεται με την άδεια MIT.

Το σύστημα είναι επεκτάσιμο για ομάδες διαφόρων μεγεθών και μπορεί να εκτελεστεί στον υπολογιστή ενός προγραμματιστή εκτελώντας ένα μόνο εκτελέσιμο αρχείο χωρίς εξωτερικές εξαρτήσεις ή να αναπτυχθεί ως κεντρικός διακομιστής για τον συντονισμό του έργου πολύ μεγάλων ομάδων.
Το Lore αποτελείται από δύο συστήματα: ένα υποσύστημα αποθήκευσης δεδομένων και ένα υποσύστημα ελέγχου εκδόσεων που είναι υπεύθυνο για τη δημιουργία αναθεωρήσεων, κλάδων και λειτουργιών συγχώνευσης.

Το υποσύστημα αποθήκευσης αποτελείται από δύο μηχανές αποθήκευσης: ένα αμετάβλητο χώρο αποθήκευσης περιεχομένου με διευθυνσιοδότηση κατακερματισμού και ένα χώρο αποθήκευσης κλειδιών/τιμών για δυναμικά μεταδεδομένα, όπως δείκτες διακλάδωσης. Διάφορα backend μπορούν να συνδεθούν για την αποθήκευση δεδομένων σε έναν κεντρικό διακομιστή και να διασφαλίσουν ανοχή σφαλμάτων. Για παράδειγμα, το AWS S3 μπορεί να χρησιμοποιηθεί για μόνιμη αποθήκευση και το DynamoDB για μεταδεδομένα.

Για την αναπαράσταση της κατάστασης του αποθετηρίου και τη διασφάλιση της αμετάβλητης αλυσίδας αναθεωρήσεων, χρησιμοποιείται μια δομή Merkle Tree, στην οποία κάθε κλάδος επαληθεύει όλους τους υποκείμενους κλάδους και κόμβους χρησιμοποιώντας hashing τύπου δέντρου. Τα δεδομένα του αποθετηρίου αντιμετωπίζονται από hashes περιεχομένου, απλοποιώντας τις συγκρίσεις και τον έλεγχο ακεραιότητας. Το hash κάθε αναθεώρησης περιλαμβάνει την συσχετισμένη κατάστασή της, τα hashes των γονικών αναθεωρήσεων και τα hashes δεδομένων. Τα μεγάλα αρχεία αποθηκεύονται σε θραύσματα.

Παρέχονται χαρακτηριστικά τυπικά για συστήματα ελέγχου εκδόσεων, όπως υποβολές, προσχέδια σταδιακής εφαρμογής, διακλάδωση και αξιολόγηση αλλαγών. Η προηγμένη λειτουργικότητα περιλαμβάνει: έλεγχο πρόσβασης χρήστη, επίλυση συγκρούσεων, αφαίρεση διπλότυπων δεδομένων σε επίπεδο τμημάτων, δυνατότητα εργασίας με ένα ελλιπές αντίγραφο του λειτουργικού δέντρου (τα δεδομένα που λείπουν φορτώνονται ανάλογα με τις ανάγκες), προσωρινή αποθήκευση αποθηκευμένων δεδομένων, απλές λειτουργίες διακλάδωσης και γρήγορη εναλλαγή μεταξύ κλάδων (οι κλάδοι υλοποιούνται μέσω συνδέσμων, οι οποίοι δεν οδηγούν σε διπλότυπα δεδομένων).

Πηγή: opennet.ru

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster