Uitgave van het Git-systeem voor bronnencodering 2.50

De nieuwe uitgave van het gedistribueerde versiebeheersysteem Git 2.50 is uitgebracht. Git staat bekend om zijn hoge prestaties en biedt middelen voor niet-lineaire ontwikkeling, gebaseerd op takken en merges. Om de integriteit van de geschiedenis en weerstand tegen 'retroactieve' wijzigingen te waarborgen, wordt impliciete hashing van de volledige voorgaande geschiedenis in elke commit gebruikt, evenals digitale handtekeningen van ontwikkelaars voor afzonderlijke tags en commits. De Git-code is gelicenseerd onder de GPLv2+.

Vergeleken met de vorige uitgave zijn er 621 wijzigingen in de nieuwe versie opgenomen, gemaakt met de deelname van 98 ontwikkelaars, van wie er 35 voor het eerst aan de ontwikkeling deelnemen. Belangrijkste vernieuwingen:

  • De mogelijkheid om te splitsen in meerdere pack-bestanden van de basis van onbereikbare objecten (‘cruft packs’), waarnaar in de repository geen verwijzingen bestaan (geen takken of tags wijzen ernaar), is uitgebreid. Het gebruik van meerdere kleine pack-bestanden in plaats van één groot bestand vermindert aanzienlijk de input/output-operaties bij het opnieuw verpakken van repositories met een groot aantal onbereikbare objecten, omdat voor elke herverpakkingsoperatie niet alle gegevens opnieuw hoeven te worden geschreven.

    In de nieuwe versie is er een optie ‘—combine-cruft-below-size’ toegevoegd, waarmee bestaande pack-bestanden kunnen worden samengevoegd, waarvan de grootte niet groter is dan een opgegeven waarde. In tegenstelling tot de eerder beschikbare optie ‘—max-cruft-size’ beperkt de nieuwe optie ‘—combine-cruft-below-size’ de maximale grootte van het resulterende pack-bestand niet, wat efficiënter maakt om pack-bestanden samen te voegen in repositories met een groot aantal onbereikbare objecten, verspreid over meerdere pack-bestanden.

  • Er is experimentele ondersteuning toegevoegd voor incrementele updates van multi-pack-indexen (MIDX), waarbij elke laag van de MIDX-index met informatie over de beschikbaarheid van objecten in een apart bitmap-bestand wordt geplaatst. In zeer grote repositories maakt de geïmplementeerde vorm van indexen het mogelijk om snel en efficiënt nieuwe bitmaps van de beschikbaarheid van objecten toe te voegen naarmate commits binnenkomen.
  • De oude uitvoeringsmotor voor samenvoegen, 'recursive', is uit de codebasis verwijderd en vervangen door een volledig herschreven motor, 'ORT' (Ostensibly Recursive’s Twin), die productiever, functioneler en eenvoudiger te onderhouden is. ORT maakt het mogelijk om de mogelijkheid tot samenvoegen van twee objecten te bepalen zonder nieuwe objecten in de repository te creëren (bij de oude motor moest de opdracht 'git merge-tree —write-tree' worden uitgevoerd, wat nieuwe objecten in de repository opnam). In Git 2.50 is er in de 'merge-tree' opdracht een optie '-quiet' geïmplementeerd, waarmee de mogelijkheid tot samenvoegen op basis van de retourcode kan worden gecontroleerd zonder gegevens in de repository te schrijven.
  • In 'git cat-file —batch' en soortgelijke opdrachten is een optie '-filter' toegevoegd, waarmee sommige objecten tijdens de operatie kunnen worden overgeslagen. git cat-file —batch-check='%(objectname)' —filter='object:type=tree'
  • In de 'git maintenance' opdracht zijn drie nieuwe acties geïmplementeerd: worktree-prune, rerere-gc en reflog-expire. De actie worktree-prune is bedoeld om verouderde of beschadigde werkbomen in de repository te verwijderen. De actie rerere-gc verwijdert oude vermeldingen die zijn overgebleven na het oplossen van samenvoegconflicten. De actie reflog-expire verwijdert verouderde niet-toegankelijke objecten uit de reflog.
  • De opdracht 'git reflog drop' is toegevoegd, waarmee alle reflog-gegevens voor de opgegeven tak worden verwijderd.
  • De verwerking en het gebruik van verwijzingen zijn geoptimaliseerd, bijvoorbeeld door het cachen van verwijzingsprefixten, onnodige controles tijdens de uitvoering van de 'git update-ref' opdracht zijn verwijderd, en de efficiëntie van het zoeken naar bestaande verwijzingsiterators is verhoogd.
  • Voor de cURL-bibliotheek zijn de KeepAlive-instellingen toegevoegd: http.keepAliveIdle, http.keepAliveInterval en http.keepAliveCount.
  • In de 'git rev-list' opdracht is de mogelijkheid geïmplementeerd om uitvoer in een machine-leesbaar formaat te genereren, waarbij elk veld gescheiden is door het NUL-teken.
  • De programmeertaal Perl is uitgesloten van de afhankelijkheden die nodig zijn voor de documentatiewerktuigen en het uitvoeren van de testsuite ('make test'). Veel Perl-eenregelaars in de tests zijn vervangen door shell-functies of herschreven in de programmeertaal C.
  • Een userdiff-handler voor het configuratiebestandsformaat '.ini' is toegevoegd.
  • In de 'send-email' opdracht is de ondersteuning voor de Outlook SMTP-server verbeterd.

Bron: opennet.ru

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