Git 2.51 versija ir pieejama ar būtiskiem veiktspējas uzlabojumiem un jaunām funkcijām.

git 2.51

Pēc divu mēnešu intensīva darba izstrādātāju kopiena izveidoja Git iepazīstina ar Git 2.51 versiju, atjauninājums, kas Tas apvieno 506 izmaiņas, kurās piedalījās 91 izstrādātājs, no kuriem 21 sniedza savu ieguldījumu pirmo reizi.

Šajā laidienā ir ieviesti uzlabojumi, kas paredzēti, lai uzlabotu veiktspēju un vienkāršotu repozitoriju pārvaldību, tostarp git-push un git-fetch veiktspējas optimizācija, kā arī vairākas izmaiņas, kas saistītas ar jauno 3.x atzaru.

Git 2.51 galvenās jaunās funkcijas

Viens no Git 2.51 spilgtākajiem aspektiem ir Git push un git fetch komandu optimizācija repozitorijos ar lielu atsauču skaitu. Šī uzlabojuma atslēga ir partijas atjaunināšanā, kas apstrādā vairākas saites vienā darījumā, nevis atsevišķi.

Pateicoties šai optimizācijai, Reftablu aizmugursistēma tagad pārspēj tradicionālo failu aizmugursistēmu.Testos ar repozitorijiem, kas satur līdz 10 000 atsauču, git fetch veiktspēja palielinājās par 22 reizēm reftable un 1.25 reizēm failu gadījumā, savukārt git push veiktspēja uzlabojās attiecīgi par 18 reizēm un 1.21 reizēm.

Vēl viens svarīgs jauninājums ir iTā saukto kruftpaku ieviešana, paredzēts nepieejamu objektu glabāšanai, kas nav saistīti ar zariem vai birkām. Šie objekti, kas iepriekš bija izkaisīti, tagad var pārvaldīt atsevišķā iepakojumās, kas atvieglo to kontroli un samazina vairāku pakotņu indeksu (MIDX) izmēru.

ar jauns repack.MIDXMustContainCruft iestatījums, Git izvairās no šo objektu iekļaušanas galvenajos indeksosGitHub testos šī konfigurācija samazināja indeksa lielumu par 38 %, paātrināja rakstīšanu par 35 % un uzlaboja lasīšanu par 5 %.

Jauna pieeja objektu iepakošanai

El git pack-objects komanda ietver opciju –path-walk, kas ievieš inovatīvu metodi reorganizēt iepakojuma failus. Tā vietā, lai apstrādātu objektus, pamatojoties uz to jaucējkodiem (hašiem), Git tagad var tos atkārtoti apstrādāt, pamatojoties uz to failu ceļu, iesaiņojot tos, kuriem ir viena un tā pati atrašanās vieta. Šī pieeja novērš nepieciešamību iepriekš kārtot objektus un nodrošina mazākus, efektīvākus failu iesaiņošanas rezultātus.

Arī ar šo versiju Ir standartizēts jauns formāts darba koku stāvokļu un indeksu apmaiņai, kas izveidoti ar Git Stash.Tagad ir iespējams eksportēt un importēt krātuves tāpat kā filiāles vai tagus, tādējādi atvieglojot stāvokļu pārvietošanu no vienas sistēmas uz citu.

Piemēram:

git stash export --to-ref refs/stashes/mi-stash git push origin refs/stashes/mi-stash git fetch origin '+refs/stashes/*:refs/stashes/*' git stash import refs/stashes/mi-stash

Klasisko komandu uzlabojumi

Vairāki Git komandas ir saņēmušas atbilstošus atjauninājumus:

  • git cat-file tagad ziņo par trūkstošiem objektiem un apakšmoduļiem, parādot identifikatorus, nevis tikai atzīmējot kā “trūkstošu”.
  • git žurnāls gūst labumu no Bloom filtra optimizācijām, paātrinot meklēšanu ar vairākiem failu ceļiem.
  • Komandas “git switch” un “git restore”, kas kopš 2019. gada tika uzskatītas par eksperimentālām, beidzot ir stabilizētas kā modernas alternatīvas “git checkout”.
  • Komanda “git whatchanged”, kas ir līdzvērtīga komandai “git log –raw”, ir novecojusi un tiks noņemta no Git 3.0 versijas.
  • `git for-each-ref` saņem `--start-after` opciju, kas kopā ar `-count` ļauj numerēt izvades lapas.
  • git merge un git pull tagad ietver opciju –compact-summary, kas nodrošina kodolīgāku kopsavilkuma formātu.

C99 atbalsts un jauni iemaksu noteikumi

Git turpina pielāgot savu kodu C9 standarta īpašībām9. Lai gan kopš 2021. gada ir nepieciešams saderīgs kompilators, izstrādātāji rīkojas piesardzīgi, lai saglabātu saderību ar kompilatoriem, kas to ievieš tikai daļēji.

Turklāt iemaksu politikā ir ieviestas būtiskas izmaiņas: Ielāpus tagad var iesniegt ar pseidonīmu, lēmums, kas ir saskaņots ar Linux kodola noteikumiem un paredzēts, lai piedāvātu lielāku elastību līdzstrādniekiem.

Raugoties nākotnē uz Git 3.0

El Izstrādātāju komanda ir arī atjauninājusi Git 3.0 ceļvedi., kur izceļas divas galvenās izmaiņas: SHA-256 noklusējuma izmantošana kā objekta identifikators un atsauču uz atsauču glabāšanai paredzētā atsauces formāta ieviešana. Šo uzlabojumu mērķis ir uzlabot drošību un efektivitāti arvien lielākos un sarežģītākos repozitorijos.

Fuente: https://lore.kernel.org