Έκδοση ελέγχου πηγής Git 2.56

Κυκλοφόρησε το Git 2.56, το κατανεμημένο σύστημα διαχείρισης πηγαίου κώδικα. Το Git διατίθεται με την άδεια χρήσης GPLv2+. Σε σύγκριση με την προηγούμενη έκδοση, η νέα έκδοση περιλαμβάνει 748 αλλαγές που έχουν προετοιμαστεί από 104 προγραμματιστές, 39 εκ των οποίων είναι νέοι στην ανάπτυξη Git. Βασικά νέα χαρακτηριστικά (1, 2, 3):

  • Έχει προστεθεί μια λειτουργία "git add --resolved" για την επίλυση διενέξεων κατά τη συγχώνευση κλάδων. Αυτή η λειτουργία ελέγχει τα αρχεία για δείκτες διενέξεων και, εάν εντοπιστεί ένας δείκτης σε τουλάχιστον ένα αρχείο, επιστρέφει ένα σφάλμα, δεν καταχωρεί κανένα αρχείο στο ευρετήριο και εμφανίζει μια λίστα αρχείων που απαιτούν διόρθωση. Σε αντίθεση με την εντολή "git add --update", αυτή η νέα λειτουργία επεξεργάζεται μόνο αρχεία σε κατάσταση διένεξης και αγνοεί τα τροποποιημένα αρχεία που δεν σχετίζονται με τη διένεξη. Αυτό επιτρέπει την ασφαλή ολοκλήρωση των συγχωνεύσεων κλάδων, ακόμη και αν υπάρχουν άλλες ημιτελείς επεξεργασίες στον κατάλογο εργασίας (η εντολή "git add --update" πρόσθεσε όλα τα προηγουμένως εντοπισμένα τροποποιημένα αρχεία στον κατάλογο εργασίας στο ευρετήριο).
  • Η εργασία με μεγάλα αποθετήρια έχει επιταχυνθεί σημαντικά βελτιστοποιώντας τον αλγόριθμο για την αναζήτηση των πιο πρόσφατων κοινών υποβολών κατά τη συγχώνευση κλάδων και τη σύγκριση υποβολών. Η διαδικασία πλέον λαμβάνει υπόψη υποβολές που ανήκουν αποκλειστικά σε έναν κλάδο, επιτρέποντας στη σάρωση να σταματήσει αμέσως μετά την εύρεση όλων των πιθανών κοινών προγόνων, χωρίς να χάνεται χρόνος σε περαιτέρω διέλευση του ιστορικού αλλαγών. Σε ένα δοκιμασμένο αποθετήριο, η ταχύτητα αναζήτησης αυξήθηκε κατά μέσο όρο 20 φορές, ενώ σε ένα άλλο, η επιτάχυνση έφτασε τις 70 φορές. Κατά την εκτέλεση της εντολής "git merge-base --all v4.8 v4.9" στο αποθετήριο με τον πυρήνα Linux Ο αριθμός των βημάτων διάσχισης μειώθηκε από 167 χιλιάδες σε 3.8 χιλιάδες.
  • Η λειτουργία ανασυσκευασίας "--path-walk" έχει προσαρμοστεί για χρήση διακομιστή, επιτρέποντας τη δημιουργία πιο συμπαγών αρχείων pack ομαδοποιώντας αντικείμενα με βάση τη διαδρομή τους στο δέντρο καταλόγων (για παράδειγμα, για το αποθετήριο Fluent UI, η χρήση του "--path-walk" μείωσε το μέγεθος του αρχείου pack από 558 MB σε 164 MB). Η νέα έκδοση υποστηρίζει τη χρήση της λειτουργίας "--path-walk" σε συνδυασμό με bitmaps προσβασιμότητας και νησίδες δέλτα, τα οποία χρησιμοποιούνται από υπηρεσίες φιλοξενίας Git για την επιτάχυνση της εργασίας και την απομόνωση fork από το κύριο αποθετήριο.
  • Τα σημεία συμφόρησης που προκαλούσαν περιττούς υπολογισμούς σε μεγάλα αποθετήρια έχουν εξαλειφθεί: οι περιττοί έλεγχοι κατάστασης αρχείων κατά την εγγραφή στο reftable έχουν αφαιρεθεί. Η επανάληψη σάρωσης της λίστας έχει εξαλειφθεί για κάθε νέα εισαγωγή αρχείου πακέτου. Οι λειτουργίες reftable με συσσωρευμένες μεγάλες εγγραφές διαγραφής έχουν επιταχυνθεί. Η απόδοση της εντολής git diff έχει βελτιστοποιηθεί κατά τον καθορισμό περιορισμών διαδρομής αρχείου. Μετά από αυτές τις βελτιστοποιήσεις, οι λειτουργίες reftable με μεγάλο αριθμό διαγραφών έχουν επιταχυνθεί κατά 65 φορές (από 13 δευτερόλεπτα σε 0.2 δευτερόλεπτα) και η προβληματική εντολή git diff σε ένα αποθετήριο Chromium με 500000 στοιχεία στο ευρετήριο διαρκεί πλέον 0.07 δευτερόλεπτα αντί για 8 λεπτά.
  • Η πειραματική εντολή "git history", η οποία παρέχει τη δυνατότητα επανεγγραφής του ιστορικού των αλλαγών, έχει ενημερωθεί ώστε να περιλαμβάνει μια λειτουργία "git history drop" για την αφαίρεση της επιλεγμένης υποβολής και την αυτόματη σύνδεση των απογόνων της στη γονική υποβολή.
  • Η εντολή "git branch --delete-merged 'origin/*' 'topic-*'" έχει προστεθεί για την ασφαλή διαγραφή ομάδων τοπικών κλάδων των οποίων οι αλλαγές έχουν ήδη καταχωρηθεί σε ένα εξωτερικό αποθετήριο. Οι χαρακτήρες μπαλαντέρ μπορούν να χρησιμοποιηθούν για το φιλτράρισμα κλάδων και αποθετηρίων. Η σημαία "-dry-run" μπορεί να χρησιμοποιηθεί για την ανάλυση υποψήφιων για διαγραφή χωρίς να εκτελεστεί στην πραγματικότητα η λειτουργία.
  • Προστέθηκε η εντολή "git refs create|update|delete|rename", η οποία συνδυάζει λειτουργίες χαμηλού επιπέδου για τη δημιουργία, τη διαγραφή, τη μετονομασία και την ενημέρωση αναφορών.
  • Η εντολή "git bisect run" έχει πλέον την επιλογή "--reset-when-found=[ ]", η οποία επιστρέφει αυτόματα το αποθετήριο στην κατάσταση πριν από την έναρξη της αναζήτησης ή αφήνει την προβληματική υποβολή ενεργή, χωρίς να χρειάζεται να εκτελέσετε ξεχωριστά την εντολή "git bisect reset".
  • Η εντολή 'git replay' έχει πλέον μια σημαία '--linearize' για να χρησιμοποιεί μια επίπεδη τοπολογία συγχώνευσης, παρόμοια με την εντολή 'git rebase --no-rebase-merges' αλλά χωρίς πρόσβαση στο λειτουργικό δέντρο.
  • Η εντολή "git log --follow" παρακολουθεί πλέον τις μετονομασίες αρχείων σε μη γραμμικά ιστορικά υποβολών, όπως κατά τη συγχώνευση υποκλάδων. Η διαδρομή του αρχείου καταγράφεται πλέον ξεχωριστά για κάθε γονική υποβολή, καθιστώντας το αποτέλεσμα ανεξάρτητο από τη σειρά με την οποία διασχίζεται το ιστορικό υποβολών.
  • Προστέθηκε η δυνατότητα χρήσης της εντολής "git repack -a --filter=blob:limit=1m --drop-filtered" για την αφαίρεση μεγάλων blob που έχουν ληφθεί κατ' απαίτηση από ένα εξωτερικό αποθετήριο και δεν χρησιμοποιούνται στο τρέχον ευρετήριο. Αυτά τα αντικείμενα θα ληφθούν ξανά αυτόματα όταν αποκτήσετε πρόσβαση σε αυτά στο μέλλον.
  • Η εντολή "git log --graph" για γραφήματα με πολλαπλές ανεξάρτητες ρίζες προσθέτει πλέον εσοχή για να διαχωρίζει με σαφήνεια τις άσχετες υποβολές.
  • Συνηθισμένα τυπογραφικά λάθη, όπως ο καθορισμός "git push origin/main" αντί για "git push origin main" ή "git branch --set-upstream-to origin main" αντί για "git branch --set-upstream-to=origin/main", εντοπίζονται πλέον και εμφανίζεται μια υπόδειξη για τον τρόπο χρήσης της σωστής παραλλαγής.

Πηγή: opennet.ru

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