Een paar dagen geleden werd het aangekondigd Release van de nieuwe versie van het Git 2.50-project, met meer dan 600 wijzigingen aangestuurd door een actieve community die dit keer bestond uit 98 ontwikkelaars, waaronder 35 nieuwe bijdragers.
Deze nieuwe versie van Git 2.50 kenmerkt zich door de integratie van nieuwe opdrachten (git-diff-pairs), nieuwe functies voor opschonen, filteren en onderhoud, de vervanging van de recursieve merge engine door ORT, en daarnaast prestatieverbeteringen en bugfixes.
Git 2.50 hoogtepunten
In deze nieuwe versie van Git 2.50 is een van de belangrijkste nieuwe functies de optimalisatie in de behandeling van zogenaamde "cruft packs", Dat wil zeggen, pakketten van objecten die ontoegankelijk zijn of niet worden gerefereerd door branches of tags. Traditioneel bewaarde Git deze objecten in één groot pakketbestand, wat prestatieproblemen kon veroorzaken bij het herverpakken van repositories met veel van deze items.
Met de nieuwe versie, Met Git kunt u deze cruft-pakketten opsplitsen in meerdere kleinere bestanden, wat het schijfgebruik vermindert en de input/output-prestaties voor bulkbewerkingen verbetert. Bovendienen voer de optie –combine-cruft-below-size in, wat toelaat combineer kleine pakketten flexibeler tot één pakket dan de vorige optie –max-cruft-size, zonder een limiet op te leggen aan de gecombineerde bestandsgrootte. Deze nieuwe functie is vooral handig in projecten met verweesde objecten verspreid over meerdere pakketten.
Een andere verbetering die gericht is op grootschalige opslagplaatsen is de experimentele ondersteuning voor de incrementele update van MIDX-indexen , welke Ze slaan informatie over objecten op in aparte lagen Het gebruik van bitmapbestanden zorgt voor snellere updates wanneer nieuwe commits worden toegevoegd. Deze vooruitgang is cruciaal voor grote repositories die snelle indexeringsbewerkingen vereisen zonder de metadata volledig opnieuw te hoeven opbouwen.
Volledige vervanging van de recursieve samenvoegingsengine met ORT
Git 2.50 introduceert een grote verandering met de permanente verwijdering van de recursieve fusiemotor traditioneel. In plaats daarvan, het gebruik van ORT wordt geconsolideerdeen modernere, onderhoudbaardere en efficiëntere fusiemotor. ORT biedt niet alleen een nauwkeurigere conflictanalyse, maar stelt u ook in staat te controleren of een samenvoeging mogelijk is zonder extra objecten te genereren. Bovendien bevat de merge-tree-opdracht nu een optie –quiet, die u kunt gebruiken als stille samenvoegingscontrole zonder de repository te wijzigen.
gitt-diff-pairs: de oplossing voor schaalbaarheidsproblemen
Code review is ongetwijfeld een van de pijlers van moderne collaboratieve ontwikkeling, en verschillen of diffs tussen revisies spelen een belangrijke rol in dit proces. Met de komst van Git 2.50 is een oplossing geïntroduceerd die is ontworpen voor schaalbaarheid: het nieuwe commando git-diff-pairs.
Om twee revisies met elkaar te vergelijken, gebruikt u doorgaans een opdracht als:
git diff HEAD~1 HEAD
Dit genereert een complete patch met alle wijzigingen tussen de vermelde revisies. Hoewel dit in veel gevallen effectief is, kan het een prestatieprobleem opleveren bij grote hoeveelheden gewijzigde bestanden.
Daarom is git-diff-pairs specifiek ontworpen om ruwe invoer rechtstreeks uit de uitvoer van git diff-tree te ontvangen en de bijbehorende patches efficiënt en nauwkeurig te genereren.
Het gebruik is zo eenvoudig als:
git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z
Deze opdracht gebruikt de meegeleverde blob-paren en genereert de exacte diff-uitvoer, waarbij contextuele informatie behouden blijft en werk in kleinere batches kan worden opgesplitst. Dit opent de deur naar parallelle verwerking, verbetert de resource-efficiëntie en vergemakkelijkt de schaalbaarheid in diff-gebaseerde tools zoals GitLab.
Nieuwe functies voor reiniging, filtering en onderhoud
Git 2.50 bevat diverse extra tools die zijn ontworpen om het onderhoud van repositories te verbeteren:
- Het commando is toegevoegd git reflog-drop, waarmee u de reflog voor een specifieke branch volledig kunt verwijderen. Dit is ideaal voor het opschonen van uw werkgeschiedenis wanneer u geen eerdere referenties meer hoeft bij te houden.
- De keuze -filter cat-file –batch is nu beschikbaar in git, waarmee u resultaten kunt filteren op objecttype.
Daarnaast worden ook enkele interne optimalisaties uitgelicht:
- Verbeterd gebruik van symbolische links, met prefixcaching en vermindering van redundante controles.
- Verwijdering van Perl-afhankelijkheden in documentatie en testscripts, en vervanging hiervan door shell-functies of C-implementaties, waardoor ze eenvoudiger te compileren zijn op systemen met minimalistische configuraties.
- Inclusief controller gebruikersdiff voor analyse van verschillen in .ini-bestanden.
- Verbeterde compatibiliteit van de opdracht git send-email met SMTP-servers zoals Outlook.
Tot slot, als u er meer over wilt weten, kunt u de details raadplegen in de volgende link.