Πριν λίγες μέρες ανακοινώθηκε Κυκλοφορία της νέας έκδοσης του έργου Git 2.50, εισάγοντας περισσότερες από 600 αλλαγές καθοδηγούμενο από μια ενεργή κοινότητα που αυτή τη φορά περιελάμβανε 98 προγραμματιστές, συμπεριλαμβανομένων 35 νέων συντελεστών.
Αυτή η νέα έκδοση του Git 2.50 χαρακτηρίζεται από την ενσωμάτωση νέων εντολών (git-diff-pairs), νέες συναρτήσεις για καθαρισμό, φιλτράρισμα και συντήρηση, την αντικατάσταση της αναδρομικής μηχανής συγχώνευσης με ORT, καθώς και βελτιώσεις στην απόδοση και διορθώσεις σφαλμάτων.
Οι καλύτερες στιγμές του Git 2.50
Σε αυτήν τη νέα έκδοση του Git 2.50, ένα από τα πιο σημαντικά νέα χαρακτηριστικά είναι το βελτιστοποίηση στην επεξεργασία των λεγόμενων "cruft packs", Δηλαδή, πακέτα αντικειμένων που δεν είναι προσβάσιμα ή δεν αναφέρονται από κλάδους ή ετικέτες. Παραδοσιακά, το Git αποθήκευε αυτά τα αντικείμενα σε ένα μόνο, μεγάλο αρχείο πακέτου, κάτι που θα μπορούσε να προκαλέσει προβλήματα απόδοσης κατά την επανασυσκευασία αποθετηρίων με πολλά από αυτά τα στοιχεία.
Με τη νέα έκδοση, Το Git σάς επιτρέπει να χωρίσετε αυτά τα cruft packs σε πολλά μικρότερα αρχεία, το οποίο μειώνει τη χρήση του δίσκου και βελτιώνει την απόδοση εισόδου/εξόδου για μαζικές λειτουργίες. Επιπλέον, sκαι εισαγάγετε την επιλογή –combine-cruft-below-sizeΕπιτρέποντας συνδυάστε μικρά πακέτα σε ένα πιο ευέλικτο από την προηγούμενη επιλογή –max-cruft-size, χωρίς να επιβάλλεται όριο στο συνδυασμένο μέγεθος αρχείου. Αυτή η νέα λειτουργία είναι ιδιαίτερα χρήσιμη σε έργα με ορφανά αντικείμενα που είναι κατανεμημένα σε πολλά πακέτα.
Μια άλλη βελτίωση που στοχεύει σε αποθετήρια μεγάλης κλίμακας είναι η πειραματική υποστήριξη για η σταδιακή ενημέρωση του Δείκτες MIDX , οι οποίες Αποθηκεύουν πληροφορίες σχετικά με αντικείμενα σε ξεχωριστά επίπεδα χρησιμοποιώντας αρχεία bitmap, τα οποία επιτρέπουν ταχύτερες ενημερώσεις καθώς προστίθενται νέες υποβολές. Αυτή η εξέλιξη είναι κρίσιμη για μεγάλα αποθετήρια που απαιτούν γρήγορες λειτουργίες ευρετηρίασης χωρίς να χρειάζεται να ανακατασκευαστούν πλήρως τα μεταδεδομένα.
Πλήρης αντικατάσταση της αναδρομικής μηχανής συγχώνευσης με ORT
Το Git 2.50 εισάγει μια σημαντική αλλαγή με το μόνιμη αφαίρεση της αναδρομικής μηχανής σύντηξης παραδοσιακό. Αντ' αυτού, η χρήση του ORT ενοποιείται, μια πιο σύγχρονη, συντηρήσιμη και αποδοτική μηχανή σύντηξης. Το ORT όχι μόνο προσφέρει πιο ακριβή ανάλυση συγκρούσεων, αλλά σας επιτρέπει επίσης να επαληθεύσετε εάν μια συγχώνευση είναι δυνατή χωρίς τη δημιουργία πρόσθετων αντικειμένων. Επιπλέον, η εντολή merge-tree περιλαμβάνει πλέον μια επιλογή –quiet για χρήση ως αθόρυβος ελεγκτής συγχώνευσης χωρίς τροποποίηση του αποθετηρίου.
gitt-diff-pairs: η λύση σε προβλήματα κλιμάκωσης
Η αναθεώρηση κώδικα είναι αναμφίβολα ένας από τους πυλώνες της σύγχρονης συνεργατικής ανάπτυξης και οι διαφορές ή οι αποκλίσεις μεταξύ των αναθεωρήσεων παίζουν σημαντικό ρόλο σε αυτή τη διαδικασία. Με την άφιξη του Git 2.50, εισήχθη μια λύση σχεδιασμένη για επεκτασιμότητα: η νέα εντολή git-diff-pairs.
Παραδοσιακά, για να κάνετε μια σύγκριση μεταξύ δύο αναθεωρήσεων, χρησιμοποιείτε μια εντολή όπως:
git diff HEAD~1 HEAD
Αυτό δημιουργεί μια πλήρη ενημέρωση κώδικα που περιέχει όλες τις αλλαγές μεταξύ των αναγραφόμενων αναθεωρήσεων. Ενώ είναι αποτελεσματικό σε πολλές περιπτώσεις, μπορεί να αποτελέσει πρόβλημα απόδοσης κατά την επεξεργασία μεγάλων συνόλων τροποποιημένων αρχείων.
Γι' αυτό το λόγο, η εντολή git-diff-pairs σχεδιάστηκε ειδικά για να λαμβάνει ακατέργαστη είσοδο απευθείας από την έξοδο της εντολής git diff-tree και να δημιουργεί τα αντίστοιχα patches αποτελεσματικά και με ακρίβεια.
Η χρήση είναι τόσο απλή όσο:
git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z
Αυτή η εντολή λαμβάνει τα παρεχόμενα ζεύγη blob και δημιουργεί την ακριβή έξοδο diff, διατηρώντας τις πληροφορίες περιβάλλοντος και επιτρέποντας τον διαχωρισμό της εργασίας σε μικρότερες παρτίδες. Αυτό ανοίγει την πόρτα στην παράλληλη επεξεργασία, βελτιώνει την αποδοτικότητα των πόρων και διευκολύνει την επεκτασιμότητα σε εργαλεία που βασίζονται σε diff, όπως το GitLab.
Νέες λειτουργίες για καθαρισμό, φιλτράρισμα και συντήρηση
Το Git 2.50 περιλαμβάνει πολλά επιπλέον εργαλεία που έχουν σχεδιαστεί για τη βελτίωση της συντήρησης του αποθετηρίου:
- Η εντολή έχει προστεθεί git reflog drop, το οποίο σας επιτρέπει να διαγράψετε εντελώς την αναπροσαρμογή για έναν συγκεκριμένο κλάδο, ιδανικό για τον καθαρισμό του ιστορικού εργασίας σας όταν δεν χρειάζεται πλέον να διατηρείτε προηγούμενες αναφορές.
- η επιλογή -φίλτρο Το cat-file –batch είναι πλέον διαθέσιμο στο git, επιτρέποντάς σας να φιλτράρετε τα αποτελέσματα ανά τύπο αντικειμένου.
Επιπλέον, επισημαίνονται επίσης αρκετές εσωτερικές βελτιστοποιήσεις:
- Βελτιωμένη χρήση συμβολικών συνδέσμων, με προσωρινή αποθήκευση προθέματος και μείωση των περιττών ελέγχων.
- Αφαίρεση των εξαρτήσεων Perl στην τεκμηρίωση και τα σενάρια δοκιμών, αντικαθιστώντας τα με συναρτήσεις shell ή υλοποιήσεις C, καθιστώντας τα ευκολότερα στη μεταγλώττιση σε συστήματα με μινιμαλιστικές διαμορφώσεις.
- Συμπεριλαμβανομένου ενός ελεγκτή διαφορά χρήστη για ανάλυση των διαφορών σε αρχεία .ini.
- Βελτιωμένη συμβατότητα της εντολής git send-email με διακομιστές SMTP όπως το Outlook.
Τέλος, εάν ενδιαφέρεστε να μάθετε περισσότερα για αυτό, μπορείτε να συμβουλευτείτε τις λεπτομέρειες στο παρακάτω σύνδεσμο.