Uitgave van het versiebeheersysteem Git 2.56

De release van het gedistribueerde versiebeheersysteem Git 2.56 is aangekondigd. De Git-code wordt verspreid onder de GPLv2+-licentie. In vergelijking met de vorige versie zijn er 748 wijzigingen geĆÆmplementeerd, met bijdragen van 104 ontwikkelaars, 39 daarvan hebben voor het eerst bijgedragen aan de ontwikkeling van Git. Belangrijke vernieuwingen (1, 2, 3):

  • De modus 'git add --resolved' is toegevoegd voor het oplossen van conflicten tijdens het samenvoegen van takken. Deze modus controleert bestanden op de aanwezigheid van conflictmarkeringen en geeft een foutmelding als in een van de bestanden een markering wordt gevonden, indexeert geen van de bestanden en toont een lijst met bestanden die moeten worden gecorrigeerd. In tegenstelling tot de 'git add --update' opdracht, worden in de nieuwe modus alleen bestanden die in conflict zijn verwerkt, terwijl gewijzigde bestanden die geen conflict hebben, worden genegeerd. Dit maakt het veilig om samenvoegingen van takken af te ronden, zelfs als er andere onvoltooide wijzigingen in de werkdirectory zijn (de 'git add --update' opdracht voegde alle eerder bijgehouden gewijzigde bestanden in de werkdirectory toe aan de index).
  • De prestaties bij het werken met grote repositories zijn aanzienlijk verbeterd door de optimalisatie van het algoritme voor het zoeken naar de laatste gemeenschappelijke commits tijdens het samenvoegen van takken en het vergelijken van commits. Tijdens het proces worden nu commits in overweging genomen die uitsluitend tot een van de takken behoren, waardoor het scannen kan worden gestopt zodra alle mogelijke gemeenschappelijke voorouders zijn gevonden, zonder tijd te verspillen aan verdere doorzoeking van de wijzigingengeschiedenis. In een van de geteste repositories steeg de zoek snelheid gemiddeld 20 keer, terwijl in een andere repository een versnelling van 70 keer werd bereikt. Bij het uitvoeren van de opdracht 'git merge-base --all v4.8 v4.9' in een repository met de Linux-kernel werd het aantal doorloopstappen verminderd van 167 duizend naar 3.8 duizend.
  • Voor servertoepassingen is de modus voor herpakken '--path-walk' aangepast, waardoor compactere pack-bestanden kunnen worden gemaakt door objecten te groeperen op hun pad in de directorystructuur (bijvoorbeeld, voor de Fluent UI-repository heeft het gebruik van '--path-walk' de grootte van het pack-bestand verminderd van 558 MB tot 164 MB). In de nieuwe versie is de mogelijkheid geĆÆmplementeerd om de modus '--path-walk' te gebruiken in combinatie met bereikbare bitmap (reachability bitmap) en delta-eilanden (delta island), die door git-hostingdiensten worden toegepast voor het versnellen van processen en het isoleren van forks van de hoofdrepository.
  • Knellingen die leidde tot overmatige berekeningen in grote repositories zijn verholpen: overbodige bestandsstatuscontroles bij het schrijven in reftable zijn verwijderd; herhaalde scans van de lijst bij het invoegen van een nieuw pack-bestand zijn uitgesloten; operaties met reftable, waar veel verwijderrecords zijn verzameld, zijn versneld; de werking van 'git diff' is geoptimaliseerd met opgegeven beperkingen voor bestands paden. Na de optimalisaties is de werking met reftable bij een groot aantal verwijderingen 65 keer versneld (van 13 seconden naar 0,2 seconde), terwijl de uitvoering van het problematische commando 'git diff' in de Chromium-repository met 500.000 elementen in de index 0,07 seconde in plaats van 8 minuten vereist.
  • De experimentele opdracht 'git history', die mogelijkheden biedt voor het herschrijven van wijzigingen, heeft de operatie 'git history drop' toegevoegd om een geselecteerde commit te verwijderen met automatische koppeling van de afstammelingen aan de oudercommit.
  • De opdracht 'git branch --delete-merged ā€˜origin/*’ ā€˜topic-*'’ is toegevoegd voor het veilig verwijderen van groepen lokale branches waarvan de wijzigingen al naar de externe repository zijn overgebracht. Het gebruik van maskers is toegestaan voor het filteren van branches en repositories. Voor het analyseren van kandidaten voor verwijdering, zonder daadwerkelijk de operatie uit te voeren, kan de vlag ā€˜--dry-run’ worden gebruikt.
  • De opdracht 'git refs create|update|delete|rename' is toegevoegd, waarin laagdrempelige operaties voor het creĆ«ren, verwijderen, hernoemen en bijwerken van verwijzingen zijn samengevoegd.
  • De opdracht 'git bisect run' heeft de optie ā€˜--reset-when-found=[]’ gekregen, die de repository automatisch terugbrengt naar de staat voor de zoektocht of de problematische commit actief houdt, zonder dat een aparte uitvoering van de opdracht ā€˜git bisect reset’ nodig is.
  • De opdracht 'git replay' heeft de vlag ā€˜--linearize’ gekregen voor het gebruik van een vlakke samenvoegingstopologie, vergelijkbaar met ā€˜git rebase --no-rebase-merges’, maar zonder toegang tot de werkboom.
  • In de opdracht 'git log --follow' is het volgen van het hernoemen van bestanden in een niet-lineaire wijzigingsgeschiedenis gerealiseerd, bijvoorbeeld bij het samenvoegen van subbranches. Het pad naar het bestand wordt nu afzonderlijk vastgelegd voor elke oudercommit, waardoor het resultaat onafhankelijk is van de volgorde van het doorlopen van de commitgeschiedenis.
  • Er is een mogelijkheid toegevoegd om de opdracht Ā«git repack -a —filter=blob:limit=1m —drop-filteredĀ» te gebruiken om grote blob-objecten die on demand vanuit een externe repository zijn geüpload en niet worden gebruikt in de huidige index te verwijderen. Wanneer in de toekomst naar deze objecten wordt verwezen, worden ze automatisch opnieuw geladen.
  • In het commando Ā«git log —graphĀ» is het mogelijk gemaakt om inspringingen toe te voegen voor grafieken met meerdere onafhankelijke roots, zodat niet-verbonden commits duidelijker van elkaar zijn te onderscheiden.
  • Typische typfouten kunnen nu worden opgespoord, zoals het gebruik van Ā«git push origin/mainĀ» in plaats van Ā«git push origin mainĀ» of Ā«git branch —set-upstream-to origin mainĀ» in plaats van Ā«git branch —set-upstream-to=origin/mainĀ», met een suggestie voor het juiste gebruik.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster