Pas dy muajsh pune intensive, komuniteti i zhvillimit të Git prezanton versionin 2.51 të Git, një përditësim që Ai bashkon 506 ndryshime, në të cilat morën pjesë 91 zhvillues, nga të cilët 21 kontribuan për herë të parë.
Ky version prezanton përmirësime të dizajnuara për të përmirësuar performancën dhe për të thjeshtuar menaxhimin e depove, duke përfshirë optimizime të performancës për git-push dhe git-fetch, si dhe disa ndryshime që shkojnë drejt degës së re 3.x.
Git 2.51 Karakteristikat kryesore të reja
Një nga pikat kryesore të Git 2.51 është Optimizimi i komandave git push dhe git fetch në depo me një numër të madh referencash. Çelësi i këtij përmirësimi është në përditësimin në grup, i cili përpunon lidhje të shumta në një transaksion të vetëm në vend që të përpunojë individualisht.
Falë këtij optimizimi, Backend-i reftable tani ia kalon performancën backend-it tradicional të skedarëve.Në testet me depo që përmbanin deri në 10 referenca, performanca e git fetch u rrit me 000 herë për reftable dhe 22 herë për skedarët, ndërsa git push u përmirësua përkatësisht me 1.25 herë dhe 18 herë.
Një tjetër risi e rëndësishme është iPrezantimi i të ashtuquajturave paketa cruft, të projektuara për të ruajtur objekte të paarritshme që nuk janë të lidhura me degë ose etiketa. Këto objekte, të cilat më parë ishin të shpërndara, tani mund të menaxhohet në paketim të veçantës, gjë që i bën ato më të lehta për t'u kontrolluar dhe zvogëlon madhësinë e indekseve me shumë paketa (MIDX).
Me cilësimin e ri repack.MIDXMustContainCruft, Git shmang përfshirjen e këtyre objekteve në indekset kryesoreNë testet në GitHub, ky konfigurim uli madhësinë e indeksit me 38%, përshpejtoi shkrimet me 35% dhe përmirësoi leximet me 5%.
Qasje e re ndaj paketimit të objekteve
El Komanda git pack-objects përfshin opsionin –path-walk, e cila prezanton një metodë inovative për të riorganizuar skedarët e paketimit. Në vend që të përpunojë objektet bazuar në hash-et e tyre, Git tani mund të iterojë përmes tyre bazuar në shtegun e skedarit të tyre, duke paketuar ato që ndajnë të njëjtën vendndodhje së bashku. Kjo qasje eliminon nevojën për të pararenditur objektet dhe rezulton në paketim skedarësh më të vegjël dhe më efikas.
Edhe me këtë version Një format i ri për shkëmbimin e gjendjeve të pemëve funksionale dhe indekseve të krijuara me Git Stash është standardizuar.Tani është e mundur të eksportohen dhe importohen depozita njësoj si degët ose etiketat, duke e bërë më të lehtë zhvendosjen e gjendjeve nga një sistem në tjetrin.
Për shembull:
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
Përmirësime në komandat klasike
disa Komandat e Git kanë marrë përditësime përkatëse:
- git cat-file tani raporton objekte dhe nënmodula që mungojnë, duke treguar identifikues në vend që të shënojë vetëm "mungojnë".
- git log përfiton nga optimizimet e filtrit Bloom, duke përshpejtuar kërkimet me shtigje të shumëfishta skedarësh.
- Komandat git switch dhe git restore, të konsideruara eksperimentale që nga viti 2019, më në fund janë stabilizuar si alternativa moderne ndaj git checkout.
- Komanda git whatchanged, ekuivalente me git log –raw, është e vjetruar dhe do të hiqet në Git 3.0.
- git for-each-ref merr opsionin –start-after, i cili së bashku me –count lejon faqosjen e rezultatit.
- git merge dhe git pull tani përfshijnë opsionin –compact-summary, i cili ofron një format përmbledhjeje më konciz.
Mbështetja C99 dhe rregullat e reja të kontributit
Git vazhdon të përshtasë kodin e tij me karakteristikat e standardit C99. Edhe pse një kompilues i përputhshëm është i nevojshëm që nga viti 2021, zhvilluesit po veprojnë me kujdes për të ruajtur përputhshmërinë me kompiluesit që e zbatojnë vetëm pjesërisht atë.
Përveç kësaj, është futur një ndryshim i rëndësishëm në politikën e kontributeve: Patch-et tani mund të dorëzohen me pseudonim, një vendim i përafruar me rregullat e kernelit Linux dhe i projektuar për t'u ofruar më shumë fleksibilitet kontribuesve.
Duke parë përpara Git 3.0
El Ekipi i zhvillimit ka përditësuar gjithashtu planin rrugor në Git 3.0., ku dallohen dy ndryshime kryesore: përdorimi i parazgjedhur i SHA-256 si identifikues objekti dhe miratimi i formatit reftable për ruajtjen e referencave të degëve dhe etiketave. Këto përmirësime synojnë të përmirësojnë sigurinë dhe efikasitetin në depot gjithnjë e më të mëdha dhe komplekse.
Fuente: https://lore.kernel.org