De nieuwe versie van het versiebeheersysteem , Git 2.26.0, is nu beschikbaar en brengt verschillende nieuwe functies , experimentele ondersteuning en, belangrijker nog, optimalisaties met zich mee. Voor wie niet bekend is met Git: het is een van de populairste, meest betrouwbare en krachtige versiebeheersystemen , dat flexibele, niet-lineaire ontwikkeltools biedt op basis van vertakkingen en samenvoegingen.
Om de integriteit van de geschiedenis te waarborgen en terugwerkende kracht te garanderen, wordt in elke commit de impliciete hash van de volledige voorgaande geschiedenis gebruikt; het is ook mogelijk om de ontwikkelaars van individuele tags en commits digitaal te ondertekenen.
Vergeleken met de vorige versie bevat de nieuwe versie 504 wijzigingen, die zijn voorbereid met de medewerking van 64 ontwikkelaars, waarvan 12 voor het eerst aan de ontwikkeling hebben meegewerkt.
Git 2.26.0 hoogtepunten
Deze nieuwe versie schakelt over naar versie 2 van het Git-communicatieprotocol , dat wordt gebruikt wanneer een client op afstand verbinding maakt met een Git-server. Versie 2 onderscheidt zich door de mogelijkheid om branches en tags aan de serverzijde te filteren, waarna een verkorte lijst met links naar de client wordt teruggestuurd.
Een andere belangrijke innovatie is de mogelijkheid om nieuwe functies aan het protocol toe te voegen zodra er nieuwe functies beschikbaar komen in de toolkit. De clientcode blijft compatibel met het vorige protocol en kan blijven functioneren met zowel nieuwe als oude servers, waarbij automatisch wordt teruggeschakeld naar de eerste versie als de server de tweede niet ondersteunt.
De optie "--show-scope« is toegevoegd aan de opdracht «git config", wat vereenvoudigt de identificatie van de plaats waar bepaalde configuraties worden gedefinieerd.
Met Git kun je configuraties op verschillende plaatsen definiëren: in de repository (.git/info/config), in de gebruikersdirectory (~ / .gitconfig), in het systeembrede configuratiebestand (/ etc / gitconfig), evenals via opdrachtregelopties en omgevingsvariabelen.
Bij het uitvoeren van ` git config` is het vrij lastig om precies te achterhalen waar de gewenste configuratie is gedefinieerd. De optie ` --show-origin` was beschikbaar om dit probleem op te lossen, maar deze toont alleen het pad naar het bestand waarin de configuratie is gedefinieerd. Dit is handig als je het bestand wilt bewerken, maar niet nuttig als je de waarde wilt wijzigen via `git config` met behulp van de opties `--system`, `--global` of `--local`.
Daarentegen vermeldt de aankondiging van deze nieuwe versie dat de uitbreiding van de experimentele ondersteuning voor gedeeltelijke klonen is voortgezet , waardoor het mogelijk is om slechts een deel van de gegevens over te dragen en met een onvolledige kopie van de repository te werken.
De nieuwe versie voegt een nieuw commando toe, "git sparse-checkout add" , waarmee je afzonderlijke mappen kunt toevoegen om de " checkout "-bewerking slechts op een deel van de werkmap toe te passen, in plaats van al die mappen in één keer op te sommen met het commando " git sparse-checkout set ".
De prestaties van het commando " git grep ", dat wordt gebruikt om zowel de actuele inhoud van de repository als historische revisies te doorzoeken, verbeteren aanzienlijk.
Om het zoeken te versnellen, was het toegestaan om de werkmap met meerdere threads te doorzoeken (" git grep --threads "), maar het doorzoeken van historische revisies gebeurde met één thread. Deze beperking is nu opgeheven dankzij de implementatie van de mogelijkheid om leesbewerkingen in de objectopslag te paralleliseren.
Standaard is het aantal threads gelijk aan het aantal CPU-cores, waardoor in de meeste gevallen de optie " --threads " niet meer expliciet geconfigureerd hoeft te worden.
Er is ondersteuning toegevoegd voor het automatisch aanvullen van subopdrachtinvoer , paden, links en andere argumenten van de opdracht "git worktree", waardoor het mogelijk is om met meerdere werkkopieën van de repository te werken.
We kunnen ook de nieuwe versie van het fsmonitor-watchman-script vinden , dat integratie biedt met het Facebook Watchman-mechanisme om het volgen van bestandswijzigingen en het verschijnen van nieuwe bestanden te versnellen. Na het updaten van Git moet je de hook in de repository vervangen.
Als je meer wilt weten over deze nieuwe release, kun je het originele artikel raadplegen via de volgende link.