Git 2.38 source control release

De release van het gedistribueerde bronbeheersysteem Git 2.38 wordt geïntroduceerd. Git is een van de meest populaire, betrouwbare en krachtige versiebeheersystemen die flexibele, niet-lineaire ontwikkeltools biedt op basis van vertakkende en samenvoegende vertakkingen. Om de integriteit van de geschiedenis en weerstand tegen veranderingen met terugwerkende kracht te garanderen, wordt impliciete hashing van de gehele voorgaande geschiedenis in elke commit gebruikt. Het is ook mogelijk om individuele tags en commits te verifiëren met digitale handtekeningen van de ontwikkelaars.

Vergeleken met de vorige release werden 699 wijzigingen geaccepteerd in de nieuwe versie, voorbereid met de deelname van 92 ontwikkelaars, van wie er 24 voor het eerst aan de ontwikkeling deelnamen. Belangrijkste innovaties:

  • De hoofdstructuur omvat het scalaire hulpprogramma dat door Microsoft is ontwikkeld voor het beheren van grote repository's. Het hulpprogramma is oorspronkelijk geschreven in C#, maar een aangepaste C-versie is opgenomen in git. Het nieuwe hulpprogramma verschilt van het git-commando doordat het standaard extra functies en instellingen bevat die de prestaties beïnvloeden bij het werken met zeer grote repository's. Bij gebruik van scalair geldt dit bijvoorbeeld:
    • Gedeeltelijk klonen om te werken met een onvolledige kopie van de repository.
    • Ingebouwd mechanisme voor het volgen van wijzigingen in het bestandssysteem (FSMonitor), waardoor u het zonder opsomming van de gehele werkmap kunt doen.
    • Indexen over objecten in verschillende pakketbestanden (multi-pack).
    • commit-graph-bestanden met een commit-grafiekindex die wordt gebruikt om de toegang tot commit-informatie te optimaliseren.
    • Periodiek werk op de achtergrond om de optimale structuur van de repository op de achtergrond te behouden zonder de interactieve sessie te blokkeren (een keer per uur wordt er gewerkt aan het vooraf ophalen van nieuwe objecten uit de externe repository en het bijwerken van het bestand met de commit-grafiek, en het proces van het verpakken van de opslagplaats wordt elke nacht gestart).
    • "sparseCheckoutCone"-modus, die toegestane patronen beperkt tijdens gedeeltelijk klonen.
  • Optie "--update-refs" toegevoegd aan het commando "git rebase" om afhankelijke branches die kruisen met verplaatste branches bij te werken, in plaats van elke afhankelijke branch handmatig uit te checken om naar de vereiste commit over te schakelen.
  • Het commando "git rm" compatibel gemaakt met gedeeltelijke indexen.
  • Het gedrag van het "git mv AB" commando verbeterd bij het verplaatsen van een bestand van een werkruimte met gedeeltelijke indexen in "cone" modus naar een buitengebied waarvoor deze modus niet van toepassing is.
  • Het formaat van bitmapbestanden is geoptimaliseerd voor het werken met grote repository's - er is een optionele indextabel toegevoegd met een lijst van geselecteerde commits en hun offsets.
  • Het "git merge-tree" commando implementeert een nieuwe modus waarin, gebaseerd op twee gespecificeerde commits, een merge tree wordt berekend, alsof de geschiedenis van deze commits zijn samengevoegd.
  • "safe.barerepository" instelling toegevoegd om te bepalen of kale repository's (repository's die geen werkende boom bevatten) in andere git-repository's kunnen worden geplaatst. Wanneer ingesteld op "expliciet", mogen alleen kale repository's in de bovenste map werken. Om kale repositories in submappen te kunnen plaatsen, moet de waarde "all" worden gebruikt.
  • De "-m" ("--max-count") optie is toegevoegd aan het "git grep" commando, dat vergelijkbaar is met de GNU grep optie met dezelfde naam en waarmee je het aantal weergegeven overeenkomsten kunt beperken.
  • De opdracht "ls-files" implementeert de optie "--format" om de uitvoervelden aan te passen (u kunt bijvoorbeeld de uitvoer van de objectnaam, modi, enz. inschakelen).
  • In "git cat-file" is bij het weergeven van de inhoud van objecten de mogelijkheid geïmplementeerd om rekening te houden met de bindingen van auteurs aan e-mail gespecificeerd in het mailmapbestand.

Bron: opennet.ru

Voeg een reactie