Uitgave van het versiebeheersysteem Git 2.46

Na drie maanden ontwikkeling is de uitgave van het gedistribueerde versiebeheersysteem Git 2.46 gepubliceerd. Git is een van de populairste, betrouwbaarste en hoogpresterende versiebeheersystemen, dat flexibele middelen voor niet-lineaire ontwikkeling biedt, gebaseerd op takken en samenvoegen. Om de integriteit van de geschiedenis te waarborgen en resistent te zijn tegen 'achteraf' wijzigingen, wordt impliciete hashing van de volledige vorige geschiedenis in elke commit gebruikt, en is het ook mogelijk om individuele tags en commits te verifiëren met digitale handtekeningen van ontwikkelaars. De Git-code wordt verspreid onder de GPLv2+ licentie.

In vergelijking met de vorige uitgave zijn er in de nieuwe versie 746 wijzigingen doorgevoerd, voorbereid door 96 ontwikkelaars, van wie 31 voor het eerst deelnemen aan de ontwikkeling. Belangrijkste vernieuwingen:

  • Er is experimentele ondersteuning toegevoegd voor een nieuw type bitmaps — de 'pseudo-merge reachability bitmap', waarin in tegenstelling tot de 'reachability bitmap' structuur de gegevens over objectsets met betrekking tot commits niet zijn gekoppeld aan elke afzonderlijke commit, maar aan meerdere commits tegelijk. Deze organisatie stelt ons in staat om één bitmap te gebruiken bij het bepalen van objecten voor commits in verschillende takken, wat in grote repositories de noodzaak om een groot aantal afzonderlijke bitmaps te creëren vermindert en de doorlooptijd voor het bepalen van welke objecten naar de client moeten worden verzonden bij het uitvoeren van operaties zoals 'git fetch', 'git rev-list' en 'git clone' aanzienlijk versnelt. Om het nieuwe type bitmaps in te schakelen en de logica voor hun selectie en gebruik te definiëren, is er een reeks instellingen 'bitmapPseudoMerge' voorgesteld: git config bitmapPseudoMerge.all.pattern 'refs/(heads|tags)/' git config bitmapPseudoMerge.all.threshold now git config bitmapPseudoMerge.all.stableThreshold never git repack -adb
  • Er is een nieuwe opdrachtregelinterface geïmplementeerd voor het commando «git config», waarin in plaats van gespreide opties voor het bekijken, hernoemen en verwijderen van instellingen en secties, zoals «—get», «—get-all», «—unset» en «—remove-section», een reeks afzonderlijke subcommando's is aangeboden. Om bijvoorbeeld alle instellingen van de repository weer te geven, kun je nu het commando «git config list» gebruiken, en om de inhoud van een specifiek parameter te bekijken, gebruik je het commando «git config get ». Voor extra filtering van resultaten met behulp van de optie «—regexp» kan een filter worden ingesteld op basis van een regulier expressie.
  • In het «credential helper»-protocol, dat wordt gebruikt voor het doorgeven van inloggegevens bij het benaderen van repositories met beperkte toegang, is ondersteuning toegevoegd voor nieuwe velden «authtype» en «credential», waarmee het mogelijk is om helpers te creëren voor HTTP-authenticatiesystemen die verder gaan dan alleen gebruikersnaam en wachtwoord controle, bijvoorbeeld bij het gebruik van Bearer Token in OAuth 2.0. Voorheen moest men gevoelige gegevens in platte tekst opgeven in de parameter http.extraHeader om met dergelijke authenticatiesystemen te werken. Bovendien is de mogelijkheid toegevoegd aan het protocol om de status van elke credential helper op te slaan voor de ondersteuning van meerstaps authenticatiemethoden die worden gebruikt in protocollen zoals NTLM en Kerberos.
  • De ontwikkeling van de experimentele backend «reftable» voor efficiënte opslag van verwijzingen naar takken en tags in de repository is voortgezet. Deze backend maakt gebruik van blokopslag, die ook door het project JGit wordt gebruikt en is geoptimaliseerd voor de opslag van een zeer groot aantal verwijzingen (traditionele opslagformaten voor verwijzingen leiden in repositories met een groot aantal verwijzingen tot merkbare overhead door het plaatsen van een zeer groot aantal bestanden in één map bij opslag van verwijzingen in de map $GIT_DIR/refs of de noodzaak om één groot bestand opnieuw te schrijven bij elke update bij opslag van verwijzingen in het bestand $GIT_DIR/packed_refs). In de nieuwe versie is het commando «git refs migrate —ref-format=reftable» toegevoegd voor het migreren van bestaande repositories naar de backend «reftable» (voorheen werd deze backend alleen geactiveerd bij het initialiseren van de repository).
  • De git-commando is voorzien van de optie «—no-advice», die alle aanbevelingen en tips uitschakelt. Dit kan nuttig zijn om te voorkomen dat de log overbodige informatie bevat bij geautomatiseerde aanroepen van git.
  • Het proces van het vertalen van enkele controles uit de testset naar het gebruik van unit-testen is begonnen, wat het testen van low-level componenten vergemakkelijkt en de efficiëntie van het testproces op het Windows-platform verhoogt, waar aanzienlijke overhead ontstaat bij het uitvoeren van een groot aantal processen tijdens de uitvoering van tests die zijn uitgevoerd in de vorm van shell-scripts.
  • In de code voor het parseren van kleurinstellingen is de mogelijkheid toegevoegd om de weergave «#RGB» te gebruiken, naast «#RRGGBB».

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster