lancering van het gedistribueerde bronbeheersysteem . Git is een van de populairste, meest betrouwbare en hoogpresterende versiesysteem, dat flexibele middelen voor niet-lineaire ontwikkeling biedt, gebaseerd op het takken en samenvoegen van vertakkingen. Voor het waarborgen van de integriteit van de geschiedenis en de weerstand tegen 'retroactieve' wijzigingen, wordt impliciete hashing van de gehele eerdere geschiedenis in elke commit gebruikt, waarbij ook digitale handtekeningen van ontwikkelaars voor bepaalde tags en commits mogelijk zijn.
In vergelijking met de vorige release zijn er in deze nieuwe versie 317 wijzigingen doorgevoerd, voorbereid met de hulp van 58 ontwikkelaars, van wie er 13 voor het eerst aan de ontwikkeling hebben deelgenomen. Belangrijkste :
- Een nieuwe instelling init.defaultBranch is toegevoegd, waarmee een willekeurige naam voor de hoofdvertakking kan worden gekozen die standaard zal worden toegepast. Deze instelling is toegevoegd voor projecten waarvan de ontwikkelaars nog steeds terugdenken aan slavernij, en het woord 'master' wordt als een beledigend spoor gezien of roept pijnlijke herinneringen en een gevoel van niet-afgeloste schuld op. , en heeft besloten standaard in plaats van het woord 'master' voor hoofdvertakkingen het woord 'main' te gebruiken. In Git, zoals voorheen, blijft het bij het uitvoeren van de opdracht ‘git init’ standaard een tak 'master' worden aangemaakt, maar deze naam kan nu worden gewijzigd. Om bijvoorbeeld de naam van de starttak in 'main' te wijzigen, kan de volgende opdracht worden gebruikt:
git config —global init.defaultBranch main
- Er zijn prestatie-optimalisaties toegevoegd, gebaseerd op de nieuwe bestandsindeling commit-graph, die wordt gebruikt om de toegang tot informatie over commits te optimaliseren, met ondersteuning voor , een probabilistische structuur die een valse bepaling van een ontbrekend element toestaat, maar het missen van een bestaand element uitsluit. De opgegeven structuur maakt het mogelijk om de zoekopdracht in de wijzigingsgeschiedenis aanzienlijk te versnellen bij het gebruik van de opdrachten 'git log — <path>' of 'git blame'.
- In de opdracht 'git status' is informatie over de voortgang van de gedeeltelijke kloonoperatie (sparse-checkout) nu beschikbaar.
- Voor de opdrachten van de familie 'diff' is een nieuwe instelling 'diff.relative' voorgesteld.
- Bij de controle via 'git fsck' wordt nu de sortering van de objectboom geëvalueerd en worden niet-gesorteerde elementen geïdentificeerd.
- De interface voor het bewerken van vertrouwelijke informatie in traceerresultaten is vereenvoudigd.
- Ondersteuning voor het aanvullen van de commandoopties 'git switch' is toegevoegd aan de autocompletion-scenario.
- De 'git diff' heeft nu ondersteuning voor het doorgeven van argumenten in verschillende notaties ('git diff A..B C', 'git diff A..B C…D', enzovoort).
- De 'git fast-export —anonymize' opdracht heeft nu de mogelijkheid om een eigen mapping van elementen op te geven voor een betere configuratie van de output, zodat deze handiger is voor debugging.
- In 'git gui' is het nu mogelijk om werkbomen te openen vanuit de initiële dialoog.
- In het 'fetch/clone' protocol is het mogelijk gemaakt dat de server de client informeert over de noodzaak om vooraf voorbereide pack-bestanden te downloaden naast de overgedragen verpakte objectgegevens.
- Het werk aan de overstap naar de SHA-256 hash-algoritme in plaats van SHA-1 wordt voortgezet.
Bron: opennet.ru
