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

Μετά από δύο μήνες ανάπτυξης, κυκλοφόρησε το σύστημα ελέγχου κατανεμημένης πηγής Git 2.35. Το Git είναι ένα από τα πιο δημοφιλή, αξιόπιστα και υψηλών επιδόσεων συστήματα ελέγχου εκδόσεων, που παρέχει ευέλικτα μη γραμμικά εργαλεία ανάπτυξης που βασίζονται στη διακλάδωση και τη συγχώνευση. Για να διασφαλιστεί η ακεραιότητα του ιστορικού και η αντίσταση σε αναδρομικές αλλαγές, χρησιμοποιείται σιωπηρός κατακερματισμός ολόκληρου του προηγούμενου ιστορικού σε κάθε δέσμευση· είναι επίσης δυνατή η πιστοποίηση μεμονωμένων ετικετών και δεσμεύσεων με ψηφιακές υπογραφές των προγραμματιστών.

Σε σύγκριση με την προηγούμενη έκδοση, η νέα έκδοση περιελάμβανε 494 αλλαγές, που προετοιμάστηκαν με τη συμμετοχή 93 προγραμματιστών, εκ των οποίων οι 35 συμμετείχαν στην ανάπτυξη για πρώτη φορά. Βασικές καινοτομίες:

  • Οι δυνατότητες χρήσης κλειδιών SSH για ψηφιακή υπογραφή αντικειμένων Git έχουν επεκταθεί. Για να περιοριστεί η περίοδος ισχύος πολλών κλειδιών, έχει προστεθεί υποστήριξη για τις οδηγίες OpenSSH "valid-before" και "valid-after", με τις οποίες μπορείτε να διασφαλίσετε τη σωστή εργασία με τις υπογραφές αφού το κλειδί έχει περιστραφεί από έναν από τους προγραμματιστές. Πριν από αυτό, υπήρχε πρόβλημα με τον διαχωρισμό των υπογραφών από το παλιό και το νέο κλειδί - εάν διαγράψετε το παλιό κλειδί, θα είναι αδύνατο να επαληθεύσετε τις υπογραφές που έγιναν με αυτό και εάν το αφήσετε, τότε θα παραμείνει δυνατό να δημιουργήστε νέες υπογραφές με το παλιό κλειδί, το οποίο έχει ήδη αντικατασταθεί από άλλο κλειδί. Χρησιμοποιώντας έγκυρο-πριν και έγκυρο-μετά, μπορείτε να διαχωρίσετε το εύρος των κλειδιών με βάση το χρόνο δημιουργίας της υπογραφής.
  • Στη ρύθμιση merge.conflictStyle, η οποία σας επιτρέπει να επιλέξετε τη λειτουργία για την εμφάνιση πληροφοριών σχετικά με τις διενέξεις κατά τη διάρκεια μιας συγχώνευσης, εμφανίστηκε η υποστήριξη για τη λειτουργία "zdiff3", η οποία μετακινεί όλες τις τυπικές γραμμές που καθορίζονται στην αρχή ή στο τέλος της διένεξης εκτός της διένεξης περιοχή, η οποία επιτρέπει μια πιο συμπαγή παρουσίαση πληροφοριών.
  • Η λειτουργία "--staged" έχει προστεθεί στην εντολή "git stash", η οποία σας επιτρέπει να αποκρύψετε μόνο τις αλλαγές που προστέθηκαν στο ευρετήριο, για παράδειγμα σε μια κατάσταση όπου πρέπει να αναβάλετε προσωρινά ορισμένες από τις περίπλοκες αλλαγές για να προσθέστε ότι είναι ήδη έτοιμο και ασχοληθείτε με τα υπόλοιπα μετά από λίγο. Η λειτουργία είναι παρόμοια με την εντολή "git commit", γράφοντας μόνο τις αλλαγές που τοποθετούνται στο ευρετήριο, αλλά αντί να δημιουργηθεί ένα νέο commit στο "git stash —staged", το αποτέλεσμα αποθηκεύεται στην προσωρινή περιοχή stash. Μόλις χρειαστούν οι αλλαγές, μπορούν να επαναφερθούν με την εντολή "git stash pop".
  • Ένας νέος προσδιοριστής μορφής προστέθηκε στην εντολή "git log", "-format=%(describe)", που σας επιτρέπει να συνδυάσετε την έξοδο του "git log" με την έξοδο της εντολής "git describe". Οι παράμετροι για το "git describe" καθορίζονται απευθείας μέσα στον προσδιοριστή ("-format=%(describe:match= ,εξαιρούνται= )"), στις οποίες μπορείτε επίσης να συμπεριλάβετε συντομευμένες ετικέτες ("—format=%(describe:tags= )") και διαμορφώστε τον αριθμό των δεκαεξαδικών χαρακτήρων για την αναγνώριση αντικειμένων (“—format=%(describe:abbrev= )"). Για παράδειγμα, για να απαριθμήσετε τις τελευταίες 8 δεσμεύσεις των οποίων οι ετικέτες δεν έχουν υποψήφια ετικέτα έκδοσης και να καθορίσετε αναγνωριστικά 8 χαρακτήρων, μπορείτε να χρησιμοποιήσετε την εντολή: $ git log -8 —format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-2-95. 94-gb056bd 2.34.1bbc642f56 v95-8-gffb7f2.34.1d v203-9- gdf2980902c2.34.1adeb640 v3-41-g212b2.34.1a639
  • Η ρύθμιση user.signingKey υποστηρίζει πλέον νέους τύπους κλειδιών που δεν περιορίζονται στον τύπο «ssh-» και καθορίζουν την πλήρη διαδρομή αρχείου προς το κλειδί. Οι εναλλακτικοί τύποι καθορίζονται χρησιμοποιώντας το πρόθεμα "key::", για παράδειγμα "key::ecdsa-sha2-nistp256" για κλειδιά ECDSA.
  • Η ταχύτητα δημιουργίας λίστας αλλαγών στη λειτουργία «—ιστόγραμμα», καθώς και κατά τη χρήση της επιλογής «—color-moved-ws», η οποία ελέγχει την επισήμανση των διαστημάτων στη χρωματική διαφορά, έχει αυξηθεί αισθητά.
  • Η εντολή "git jump", που χρησιμοποιείται για να παρέχει στο Vim πληροφορίες σχετικά με το ακριβές άλμα στην επιθυμητή θέση σε ένα αρχείο κατά την ανάλυση των διενέξεων συγχώνευσης, την προβολή διαφορών ή την εκτέλεση μιας λειτουργίας αναζήτησης, παρέχει τη δυνατότητα να περιορίσετε τις συγκρούσεις συγχώνευσης που καλύπτονται. Για παράδειγμα, για να περιορίσετε τις λειτουργίες μόνο στον κατάλογο "foo", μπορείτε να καθορίσετε "git jump merge - foo" και για να εξαιρέσετε τον κατάλογο "Documentation" από την επεξεργασία - "git jump merge - ':^Documentation'""
  • Έγινε δουλειά για την τυποποίηση της χρήσης του τύπου "size_t" αντί του "unsigned long" για τιμές που αντιπροσωπεύουν το μέγεθος των αντικειμένων, γεγονός που επέτρεψε τη χρήση φίλτρων "καθαρών" και "μουτζούρων" με αρχεία μεγαλύτερα από 4 GB σε όλες τις πλατφόρμες, συμπεριλαμβανομένων των πλατφορμών με το μοντέλο δεδομένων LLP64 , ο τύπος "unsigned long" στον οποίο περιορίζεται στα 4 byte.
  • Η επιλογή "-empty=(stop|drop|keep)" προστέθηκε στην εντολή "git am", η οποία σας επιτρέπει να επιλέξετε τη συμπεριφορά για κενά μηνύματα που δεν περιέχουν ενημερώσεις κώδικα κατά την ανάλυση ενημερώσεων κώδικα από το γραμματοκιβώτιο. Η τιμή "stop" θα τερματίσει ολόκληρη τη λειτουργία επιδιόρθωσης, το "drop" θα παρακάμψει μια κενή ενημέρωση κώδικα και το "keep" θα δημιουργήσει μια κενή δέσμευση.
  • Προστέθηκε υποστήριξη για μερικούς ευρετήρια (sparse index) στις εντολές "git reset", "git diff", "git blame", "git fetch", "git pull" και "git ls-files" για βελτίωση της απόδοσης και εξοικονόμηση χώρου στο αποθετήρια , στα οποία εκτελούνται λειτουργίες μερικής κλωνοποίησης (αραιό checkout).
  • Η εντολή "git sparse-checkout init" έχει καταργηθεί και θα πρέπει να αντικατασταθεί από το "git sparse-checkout set".
  • Προστέθηκε η αρχική υλοποίηση ενός νέου "επαναστρεφόμενου" backend για την αποθήκευση αναφορών όπως διακλαδώσεις και ετικέτες στο αποθετήριο. Το νέο backend χρησιμοποιεί μπλοκ αποθήκευσης που χρησιμοποιείται από το έργο JGit και είναι βελτιστοποιημένο για την αποθήκευση πολύ μεγάλου αριθμού αναφορών. Το backend δεν είναι ακόμη ενσωματωμένο στο σύστημα refs και δεν είναι έτοιμο για πρακτική χρήση.
  • Η χρωματική παλέτα της εντολής "git grep" έχει προσαρμοστεί ώστε να ταιριάζει με το βοηθητικό πρόγραμμα GNU grep.

Πηγή: opennet.ru

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