Git 2.37 is al uitgebracht en dit is zijn nieuws

De lancering van de nieuwe versie van Git 2.37, dat is een van de meest populaire versiebeheersystemen, betrouwbare en krachtige software die flexibele niet-lineaire ontwikkeltools biedt op basis van forks en branchefusies.

Om de integriteit van de geschiedenis en weerstand tegen verandering te waarborgen, wordt impliciete "achterwaartse" hashing van alle voorgaande geschiedenis gebruikt bij elke commit. Het is ook mogelijk om digitale handtekeningen van individuele tag- en commit-ontwikkelaars te verifiëren.

Git 2.37 hoogtepunten

Vergeleken met de vorige versie, In de nieuwe versie zijn 395 wijzigingen geaccepteerd, opgesteld met de medewerking van 75 ontwikkelaars, waarvan er 20 voor het eerst aan de ontwikkeling deelnamen.

In deze nieuwe versie wordt dat benadrukt het partiële indexmechanisme (sparse index), die slechts een deel van de repository beslaat, sen is voorbereid voor algemeen gebruik. Gedeeltelijke indexen kunnen de prestaties verbeteren en ruimte besparen in repository's die gedeeltelijke kloonbewerkingen (sparse checkout) uitvoeren of werken op een onvolledige kopie van de repository.

De nieuwe versie voltooit het werk van integratie van gedeeltelijke indexen in commando's "git show", "git sparse-checkout" en "git stash". De meest merkbare prestatiewinst door het gebruik van gedeeltelijke indexen is in de opdracht "git stash", die in sommige situaties tot 80% sneller is.

Een andere opvallende verandering is dat er is een nieuw cruft packs-mechanisme geïmplementeerd om onbereikbare objecten te verpakken waarnaar niet wordt verwezen in de repository (niet waarnaar wordt verwezen door branches of tags). De vuilnisophaler verwijdert onbereikbare objecten, maar ze blijven een bepaalde tijd in de repository voordat ze worden verwijderd om race-omstandigheden te voorkomen. Om de periode van onbereikbare objecten bij te houden, is binding vereist, ze zijn gelabeld met de wijzigingstijd van vergelijkbare objecten, waardoor ze niet kunnen worden opgeslagen in een pakketbestand, waarin alle objecten een gemeenschappelijke wijzigingstijd hebben.

Door elk eerder gebruikt object op te slaan in een apart bestand, veroorzaakte het bestand problemen bij aanwezigheid van een groot aantal onbereikbare nieuwe objecten, nog niet. Het voorgestelde mechanisme "cruft packs" maakt het mogelijk om alle onbereikbare objecten in een pakketbestand op te slaan, en de gegevens over de wijzigingstijd van elk object worden weerspiegeld in een aparte tabel die is opgeslagen in een bestand met de extensie ".mtimes".

Voor Windows en macOS is er een ingebouwd mechanisme om wijzigingen in het bestandssysteem bij te houden, welke verwijdert de noodzaak om de volledige werkdirectory weer te geven bij het uitvoeren van bewerkingen zoals "git status". Om wijzigingen via hooks bij te houden, konden voorheen hulpprogramma's voor het bijhouden van wijzigingen in het externe bestandssysteem, zoals Watchman, worden aangesloten, maar dit vereiste de installatie van extra programma's en instellingen. Deze functionaliteit is nu geïntegreerd en kan worden ingeschakeld met "git config core.fsmonitor true".

Het commando git sparse-checkout ondersteunt geen alternatief voor --cone-modus meer sjabloondefinitie voor gedeeltelijk klonen, waarmee bij het definiëren van het deel van de repository dat onderhevig is aan de kloonbewerking, individuele bestanden kunnen worden weergegeven met behulp van de syntaxis ".gitignore", die niet kan worden gebruikt om gedeeltelijke indexen te optimaliseren.

Van de andere veranderingen die opvallen:

  • Verbeterde flexibiliteit bij het configureren van de fsync()-aanroep om wijzigingen naar schijf te wissen.
  • Ondersteuning toegevoegd voor de "batch"-synchronisatiestrategie voor de parameter "core.fsyncMethod", die het werk versnelt bij het schrijven van een groot aantal afzonderlijke bestanden door het accumuleren van wijzigingen in de herschrijfcache die worden gewist door een enkele fsync()-aanroep.
  • Traversale commando's zoals "git log" en "git rev-list" hebben nu de optie "–since-as-filter=X" om informatie over commits ouder dan "X" te filteren.
  • In het "git remote" commando geeft het specificeren van de "-v" vlag informatie over gedeeltelijke klonen van de repository.
  • Instelling "transfer.credentialsInUrl" toegevoegd, die de waarden "warn", "die" en "allow" kan aannemen. Als de parameter “remote. .url" inloggegevens in platte tekst specificeert, zal een poging om "get"- of "push"-bewerkingen uit te voeren mislukken als de instelling "transfer.credentialsInUrl" is ingesteld op "die", of een waarschuwing indien ingesteld op "warn" .
  • Standaard wordt de nieuwe interactieve modus implementatie van het "git add -i" commando, herschreven van Perl naar C, gebruikt.

Eindelijk als u er meer over wilt weten, kunt u de details bekijken In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.