Το Git 2.51 έρχεται με βασικές βελτιώσεις στην απόδοση και νέα χαρακτηριστικά

git 2.51

Μετά από δύο μήνες εντατικής εργασίας, η κοινότητα ανάπτυξης του Το Git παρουσιάζει την έκδοση 2.51 του Git, μια ενημέρωση που Συγκεντρώνει 506 αλλαγές, στις οποίες συμμετείχαν 91 προγραμματιστές, εκ των οποίων οι 21 συνέβαλαν για πρώτη φορά.

Αυτή η έκδοση εισάγει βελτιώσεις που έχουν σχεδιαστεί για τη βελτίωση της απόδοσης και την απλοποίηση της διαχείρισης του αποθετηρίου, συμπεριλαμβανομένων βελτιστοποιήσεων απόδοσης για το git-push και το git-fetch, καθώς και αρκετές αλλαγές που αφορούν τον νέο κλάδο 3.x.

Οι καλύτερες στιγμές του Git 2.51

Ένα από τα σημαντικότερα σημεία του Git 2.51 είναι το Βελτιστοποίηση εντολών git push και git fetch σε αποθετήρια με μεγάλο αριθμό αναφορών. Το κλειδί για αυτή τη βελτίωση βρίσκεται στην μαζική ενημέρωση, το οποίο επεξεργάζεται πολλαπλούς συνδέσμους σε μία μόνο συναλλαγή και όχι μεμονωμένα.

Χάρη σε αυτή τη βελτιστοποίηση, Το backend με δυνατότητα αναδίπλωσης (reftable) ξεπερνά πλέον σε απόδοση το παραδοσιακό backend για αρχεία.Σε δοκιμές με αποθετήρια που περιείχαν έως και 10 αναφορές, η απόδοση του git fetch αυξήθηκε κατά 000 φορές για το reftable και 22 φορές για τα αρχεία, ενώ το git push βελτιώθηκε κατά 1.25 φορές και 18 φορές, αντίστοιχα.

Μια άλλη σημαντική καινοτομία είναι το iΕισαγωγή των λεγόμενων πακέτων cruft, σχεδιασμένο για την αποθήκευση μη προσβάσιμων αντικειμένων που δεν συνδέονται με κλάδους ή ετικέτες. Αυτά τα αντικείμενα, τα οποία προηγουμένως ήταν διασκορπισμένα, μπορούν πλέον να διαχειρίζονται σε ξεχωριστή συσκευασίαs, γεγονός που διευκολύνει τον έλεγχό τους και μειώνει το μέγεθος των ευρετηρίων πολλαπλών πακέτων (MIDX).

Με τη νέα ρύθμιση repack.MIDXMustContainCruft, το Git αποφεύγει να συμπεριλάβει αυτά τα αντικείμενα στα κύρια ευρετήριαΣε δοκιμές στο GitHub, αυτή η διαμόρφωση μείωσε το μέγεθος του ευρετηρίου κατά 38%, επιτάχυνε τις εγγραφές κατά 35% και βελτίωσε τις αναγνώσεις κατά 5%.

Νέα προσέγγιση στη συσκευασία αντικειμένων

El Η εντολή git pack-objects ενσωματώνει την επιλογή –path-walk, η οποία εισάγει μια καινοτόμο μέθοδο για την αναδιοργάνωση των αρχείων συσκευασίας. Αντί να επεξεργάζεται αντικείμενα με βάση τα hashes τους, το Git μπορεί πλέον να τα επεξεργάζεται με βάση τη διαδρομή αρχείου τους, συσκευάζοντας μαζί αυτά που μοιράζονται την ίδια τοποθεσία. Αυτή η προσέγγιση εξαλείφει την ανάγκη για προταξινόμηση αντικειμένων και έχει ως αποτέλεσμα μικρότερα, πιο αποτελεσματικά αρχεία συσκευασίας.

Και με αυτή την έκδοση Μια νέα μορφή για την ανταλλαγή καταστάσεων δέντρων εργασίας και ευρετηρίων που δημιουργήθηκαν με το Git Stash έχει τυποποιηθεί.Είναι πλέον δυνατή η εξαγωγή και εισαγωγή αποθεμάτων όπως ακριβώς και κλάδων ή ετικετών, διευκολύνοντας τη μετακίνηση καταστάσεων από το ένα σύστημα στο άλλο.

Για παράδειγμα:

git stash export --to-ref refs/stashes/mi-stash git push origin refs/stashes/mi-stash git fetch origin '+refs/stashes/*:refs/stashes/*' git stash import refs/stashes/mi-stash

Βελτιώσεις στις κλασικές εντολές

Διάφοροι Οι εντολές Git έχουν λάβει σχετικές ενημερώσεις:

  • Το git cat-file αναφέρει πλέον αντικείμενα και υπομονάδες που λείπουν, εμφανίζοντας αναγνωριστικά αντί να επισημαίνει απλώς ως "λείπει".
  • Το git log επωφελείται από τις βελτιστοποιήσεις φίλτρων Bloom, επιταχύνοντας τις αναζητήσεις με πολλαπλές διαδρομές αρχείων.
  • Οι εντολές git switch και git restore, που θεωρούνται πειραματικές από το 2019, σταθεροποιούνται επιτέλους ως σύγχρονες εναλλακτικές λύσεις για το git checkout.
  • Η εντολή git whatchanged, ισοδύναμη με την εντολή git log –raw, έχει καταργηθεί και θα αφαιρεθεί στο Git 3.0.
  • Το git for-each-ref λαμβάνει την επιλογή –start-after, η οποία μαζί με την επιλογή –count επιτρέπει την σελιδοποίηση της εξόδου.
  • Οι συναρτήσεις git merge και git pull περιλαμβάνουν πλέον την επιλογή –compact-summary, η οποία παρέχει μια πιο συνοπτική μορφή σύνοψης.

Υποστήριξη C99 και νέοι κανόνες συνεισφοράς

Το Git συνεχίζει να προσαρμόζει τον κώδικά του στα χαρακτηριστικά του προτύπου C99. Παρόλο που απαιτείται συμβατός μεταγλωττιστής από το 2021, οι προγραμματιστές κινούνται προσεκτικά για να διατηρήσουν τη συμβατότητα με μεταγλωττιστές που τον εφαρμόζουν μόνο εν μέρει.

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

Κοιτάζοντας μπροστά στο Git 3.0

El Η ομάδα ανάπτυξης έχει επίσης ενημερώσει το χρονοδιάγραμμα για το Git 3.0., όπου ξεχωρίζουν δύο βασικές αλλαγές: η προεπιλεγμένη χρήση του SHA-256 ως αναγνωριστικού αντικειμένου και η υιοθέτηση της μορφής reftable για την αποθήκευση αναφορών κλάδων και ετικετών. Αυτές οι βελτιώσεις στοχεύουν στη βελτίωση της ασφάλειας και της αποτελεσματικότητας σε ολοένα και μεγαλύτερα και πιο σύνθετα αποθετήρια.

πηγή: https://lore.kernel.org


Προσθήκη ως προτιμώμενης πηγής