Release av Git 2.52 kÀllkontrollsystem

Efter tre mÄnaders utveckling har Git 2.52, ett distribuerat kÀllkodshanteringssystem, slÀppts. Git stÄtar med hög prestanda och erbjuder icke-linjÀra utvecklingsfunktioner baserade pÄ förgrening och sammanslagning. För att sÀkerstÀlla historisk integritet och motstÄndskraft mot retroaktiva förÀndringar anvÀnder det implicit hashning av hela den tidigare historiken i varje commit, samt digitala signaturer för individuella taggar och commits. Git Àr licensierat under GPLv2+-licensen.

JÀmfört med den föregÄende utgÄvan innehÄller den nya versionen 637 Àndringar, bidragna av 94 utvecklare (varav 33 var nya inom Git-utveckling). Viktiga nya funktioner (1, 2, 3):

  • Lade till kommandot "git last-modified" för att visa en lista över filer i en specifik version och de commits som senast Ă€ndrade varje fil. $ git last-modified HEAD b56f6dcd7b4c90192018e848d0810f091d092913 test.h 29330ae4b820147c98e723399e9438c8bee60a8a test1.c 573ad8917beb99dc643b6e7f5c117a294384a575 test2.c
  • Lade till kommandot "git repo" för att utföra Ă„tgĂ€rder relaterade till att hĂ€mta information frĂ„n ett arkiv. TvĂ„ underkommandon, "git repo info" och "git repo structure", tillhandahĂ„lls, vilka visar information om arkivinstĂ€llningar och detaljer om arkivstrukturen (till exempel kan du ta reda pĂ„ antalet referenser och objekt i arkivet). $ git repo info object.format references.format object.format=sha1 references.format=reftable $ git repo structure | Arkivstruktur | VĂ€rde | | ——————— | —— | | * Referenser | | | * Antal | 1983 | | * Grenar | 4 | | * Taggar | 1125 | | * FjĂ€rrkontroller | 854 | | * Övriga | 0 | | | | | * NĂ„bara objekt | | | * Antal | 518955 | | * Commits | 77469 | | * TrĂ€d | 188865 | | * Blobs | 251631 | | * Taggar | 990 |
  • Kommandot git refs har uppdaterats med tre underkommandon som förenar olika och överlappande lĂ„gnivĂ„operationer pĂ„ referenser (git for-each-ref, git show-ref, git update-ref och git pack-refs):
    • "git refs optimize" — optimering av referenslagringsbackend (liknande "git pack-refs").
    • "git refs list" - visar en lista över alla referenser (liknande "git for-each-ref" eller "git show-ref").
    • "git refs exists" — kontrollerar om en referens finns (analogt med "git show-ref --exists").
  • Formatet för export och import av commit-historik har utökats för att stödja kryptografiska signaturer med bĂ„de SHA-1- och SHA-256-baserade objektidentifierare. Kommandot "git fast-import" stöder nu bearbetning av signerade taggar pĂ„ liknande sĂ€tt som signerade commits. Alternativen "--signed-commits=<mode>" och "--signed-tags=<mode>" har lagts till för att styra bearbetningen av signerade commits och taggar under import (lĂ€get kan vara verbatim, warn-verbatim, warn-stri, strip eller abort).
  • Kommandot "git maintenance" stöder nu en ny "geometrisk" strategi ("git config set maintenance.strategy geometric"), vilket minskar underhĂ„llstiden för stora monorepositories. JĂ€mfört med den tidigare tillgĂ€ngliga strategin, som anvĂ€nde logik liknande "git gc", undviker den nya strategin ompaketering av alla objekt och eliminerar resurskrĂ€vande operationer som att slĂ„ samman alla packfiler (dĂ€r det Ă€r möjligt utförs sammanslagningen i delar och utan att radera borttagna objekt).
  • Lade till kommandot 'git sparse-checkout clean' för att göra det enklare att Ă„terstĂ€lla arbetskatalogens tillstĂ„nd genom att ta bort filer som inte matchar den nya definitionen av sparse-checkout och som inte ska finnas i den lokala kopian enligt de nuvarande instĂ€llningarna för sparse-checkout.
  • För att minska komplexiteten i kodbasen och förenkla underhĂ„llet utfördes en omfaktorering för att minska anvĂ€ndningen av den globala variabeln the_repository.
  • AnvĂ€ndningen av Bloom-filter, ett probabilistiskt ramverk för att kontrollera medlemskap i mĂ€ngder som möjliggör falska positiva resultat av saknade element men förhindrar att befintliga element utelĂ€mnas, har utökats. Bloom-filter anvĂ€nds nu för att snabba upp sökningar i Ă€ndringshistoriken nĂ€r jokertecken anges i filsökvĂ€gar, till exempel "foo/bar/*/baz".
  • Prestandan för kommandot "git describe" har ökats med upp till 30 % tack vare anvĂ€ndningen av en prioritetskö. Referensnamnsbyten i "git remote rename" har accelererats. AnvĂ€ndningen av index har utökats i "git ls-files". Kommandot "git log -L" har accelererats avsevĂ€rt genom att eliminera onödiga trenivĂ„jĂ€mförelser vid bearbetning av merge commits. Optimeringar har gjorts i xdiff-biblioteket.
  • En valfri Rust-implementering av vissa interna funktioner, sĂ„som kodning och avkodning av heltal med variabel lĂ€ngd, har introducerats. Rust-kod anvĂ€nds inte som standard och krĂ€ver att byggflaggan WITH_RUST Ă€r aktiverad. I framtiden förvĂ€ntas mer betydande interna Git-komponenter skrivas om i Rust, och Rust kommer att lĂ€ggas till som ett obligatoriskt byggberoende i Git 3.0.
  • Listan över viktiga Ă€ndringar som kommer att tillĂ€mpas i Git 3.0-grenen har uppdaterats. I Git 3.0 kommer standardinstĂ€llningen init.defaultBranch att Ă€ndras till "main", vilket innebĂ€r att standardgrenen i repositorier som skapats med kommandot "git init" kommer att heta "main" istĂ€llet för "master". En övergĂ„ng till SHA-256-baserade objektidentifierare vid initialisering av nya repositorier noteras ocksĂ„. För att förenkla portabiliteten mellan repositorier med SHA-1- och SHA-256-baserade objektidentifierare finns det nu möjlighet att pusha till och hĂ€mta frĂ„n ett repository med hjĂ€lp av en hashingalgoritm och ett repository med en annan hashingalgoritm.

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster