UtgÄvan av versionshanteringssystemet Git 2.52

Efter tre mÄnaders utveckling har den distribuerade versionshanteringssystemet Git 2.52 slÀppts. Git kÀnnetecknas av hög prestanda och erbjuder verktyg för icke-linjÀr utveckling baserade pÄ grenhantering och sammanfogning av grenar. För att sÀkerstÀlla integriteten av historien och motstÄndskraft mot förÀndringar "i efterhand" anvÀnds implicit hashing av hela den tidigare historien i varje commit, samt digitala signaturer frÄn utvecklare av specifika taggar och commits. Koden för Git distribueras under licensen GPLv2+.

JÀmfört med föregÄende version har den nya versionen antagit 637 Àndringar, som har förberetts av 94 utvecklare (33 deltog för första gÄngen i utvecklingen av Git). Huvudnyheterna (1, 2, 3):

  • En ny kommando "git last-modified" har lagts till för att visa en lista över filer i en angiven revision och commits genom vilka de senaste Ă€ndringarna har gjorts i varje av dessa filer. $ git last-modified HEAD b56f6dcd7b4c90192018e848d0810f091d092913 test.h 29330ae4b820147c98e723399e9438c8bee60a8a test1.c 573ad8917beb99dc643b6e7f5c117a294384a575 test2.c
  • Kommando "git repo" har lagts till för att utföra Ă„tgĂ€rder relaterade till hĂ€mtning av information frĂ„n ett lager. TvĂ„ underkommandon — "git repo info" och "git repo structure", som visar information om lagrets instĂ€llningar och information om lagerstrukturen (till exempel kan du fĂ„ reda pĂ„ antalet referenser och objekt i lagret). $ git repo info object.format references.format object.format=sha1 references.format=reftable $ git repo structure | Lagerstruktur | VĂ€rde | | ——————— | —— | | * Referenser | | | * Antal | 1983 | | * Grenar | 4 | | * Taggar | 1125 | | * Remoter | 854 | | * Övriga | 0 | | | | | * TillgĂ€ngliga objekt | | | * Antal | 518955 | | * Commits | 77469 | | * TrĂ€d | 188865 | | * Blobs | 251631 | | * Taggar | 990 |
  • Till kommandot "git refs" har tre underkommandon lagts till för att förena 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 backend-lagring av referenser (i likhet med "git pack-refs").
    • "git refs list" — visar en lista över alla referenser (i likhet med "git for-each-ref" eller "git show-ref").
    • "git refs exists" — kontrollerar om en referens existerar (motsvarar "git show-ref —exists").
  • Formatet för export eller import av commit-historik har utökats med möjligheten att arbeta med kryptografiska signaturer som anvĂ€nder bĂ„de SHA-1 och SHA-256 som objektidentifierare. Stödet för att hantera signerade taggar pĂ„ liknande sĂ€tt som signerade commits har implementerats i kommandot "git fast-import". Alternativen "—signed-commits=" och "—signed-tags=" har lagts till för att styra behandling av signerade commits och taggar under importsteget (lĂ€get kan anta vĂ€rdena verbatim, warn-verbatim, warn-stri, strip eller abort).
  • Kommandot "git maintenance" har fĂ„tt stöd för den nya strategin "geometric" ("git config set maintenance.strategy geometric"), som gör det möjligt att minska underhĂ„llstiden för stora monorepositorier. JĂ€mfört med tidigare tillgĂ€nglig strategi, som anvĂ€nder logik frĂ„n kommandot "git gc", undviker den nya strategin att ompacka alla objekt och utesluter överdrivet resurskrĂ€vande operationer som att slĂ„ samman alla pack-filer (om möjligt görs sammanslagning i delar utan att rensa bort borttagna objekt).
  • Kommandot "git sparse-checkout clean" har lagts till för att förenkla Ă„terstĂ€llningen av arbetskatalogens tillstĂ„nd genom att ta bort filer som inte överensstĂ€mmer med den nya definitionen av sparse-checkout, och som inte bör finnas i den lokala kopian enligt de aktuella sparsesta-instĂ€llningarna.
  • För att förenkla kodbasen och underhĂ„llet har en omstrukturering genomförts för att minska anvĂ€ndningen av den globala variabeln the_repository.
  • AnvĂ€ndningen av Bloom-filter, en probabilistisk struktur för att kontrollera medlemmar i en mĂ€ngd som tillĂ„ter falska positiva men utesluter att man missar existerande element, har utvidgats. Bloom-filter anvĂ€nds nu för att pĂ„skynda sökningar i Ă€ndringshistoriken nĂ€r maskar i filvĂ€gar anges, till exempel "foo/bar/*/baz".
  • Prestandan för kommandot "git describe" har förbĂ€ttrats med 30% tack vare anvĂ€ndning av prioritetsköer. Operationerna för att döpa om referenser i "git remote rename" har snabbsatts. TillĂ€mpningen av index har utvidgats i "git ls-files". Arbetet med kommandot "git log -L" har avsevĂ€rt snabbats upp, tack vare att överflödiga tre-nivĂ„jĂ€mförelser eliminera vid bearbetning av commit-sammanslagningar. Optimeringar har gjorts i biblioteket xdiff.
  • Det har lagts till en valfri möjlighet att anvĂ€nda implementationer pĂ„ sprĂ„k som Rust för vissa interna funktioner, sĂ„som kodning och avkodning av heltal med variabel lĂ€ngd. Som standard anvĂ€nds inte kod i Rust, och för att aktivera det krĂ€vs ange byggflaggan WITH_RUST. I framtiden förvĂ€ntas en omarbetning pĂ„ Rust av fler betydande interna komponenter i Git och att Rust kommer att bli ett obligatoriskt byggberoende i Git 3.0.
  • Listan över brytande Ă€ndringar har uppdaterats som kommer att tillĂ€mpas i Git 3.0-grenen. I Git 3.0 har det beslutats att Ă€ndra den standardinstĂ€llning för init.defaultBranch till "main", vilket innebĂ€r att i repositoryn som skapas med kommandot "git init", kommer standardgrenen att kallas "main" istĂ€llet för "master". Det noteras ocksĂ„ ett skifte till objektidentifierare baserade pĂ„ SHA-256 hash-algoritmen vid initiering av nya repositoryn. För att underlĂ€tta portabilitet mellan repositoryn med objektidentifierare baserade pĂ„ SHA-1 och SHA-256, har det lagts till möjlighet att utföra push- och pull-operationer frĂ„n en repository med en hash-algoritm till en annan.

KĂ€lla: opennet.ru

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