Kas naujo „Git 2.52“ versijoje: komandos, našumas ir saugumas

  • Naujos komandos: „git last-modified“, „git repo“ ir papildymai „git refs“ funkcijose, skirtose įprastoms operacijoms.
  • Patobulinta priežiūra: geometrinė užduotis „Git“ priežiūroje ir daugkartinis našumo optimizavimas.
  • Saugumo užtikrinimas: pirmieji žingsniai siekiant SHA-1/SHA-256 sąveikos ir numatytasis pakeitimas į „main“ kitoje pagrindinėje versijoje.
  • Daugiau įrankių: „Bloom“ filtrų patobulinimai, „sparse-checkout“ valymas ir naujos funkcijos commit-graph, stash ir diff-tree.

2.52

git 2.52 dabar prieinama kaip stabilus šios populiarios paskirstytos versijų valdymo sistemos atnaujinimas. Versija pateikiama su Naujos funkcijos, priežiūros pakeitimai ir našumo patobulinimai Daugiau nei 94 bendradarbių darbo rezultatas, 33 iš jų projekte dalyvavo pirmą kartą.

Tarp pastebimiausių pakeitimų yra naujos subkomandos saugykloms naršyti, išmanesnis priežiūros darbo eigas ir perėjimas prie SHA-256. Visa tai įgyvendinama nuosekliai ir santūriai, naudojant praktinis požiūris kurios valdo įvairaus dydžio saugyklas.

Naujos „git 2.52“ komandos saugyklų tyrinėjimui

Įspūdingiausia naujovė yra git last-modifiedSukurta efektyviai gauti naujausią pakeitimų įrašą, kuris palietė kiekvieną kelią. Saugyklose su daugybe įrašų šis metodas leidžia išvengti pakartotinių istorijos peržiūrų ir gali būti kelis kartus greičiau nei sujungiant ls-tree + logRemiantis vidiniais bandymais, realiomis sąlygomis laikas sutrumpėja nuo sekundžių iki milisekundžių.

Variklis last-modified Jis buvo kuriamas daugelį metų „GitHub“ platformoje pavadinimu kaltinimų medisnuo 2012 m. maitindami savo medžių lygmens „kaltinimą“. Vėliau, „GitLab“ inžinieriai Jie pataisų rinkinį pataisė, kad galėtų jį integruoti į „Git 2.52“, nors vis dar yra funkcijų, kurias reikia pridėti, pavyzdžiui, disko formatavimas, kad rezultatai būtų kaupiami talpykloje nuo ankstesnių egzekucijų.

Taip pat atvyksta eksperimentinis git repoSkėtis saugyklos funkcijoms peržiūrėti. Su git repo info ar galite pasakyti, ar tai yra? plikas o paviršutiniškas, objektų ir nuorodų formatą ir su git repo structure yra atspausdinti struktūrinė statistika (įvykdymų skaičius, medžiai, blobai, šakos, žymos ir kt.). Be to, info apima sutrumpintą parinktį -z ir sugeba pranešti objekto formatą naudotas.

Tiems, kurie dirba žemesniame lygyje su rekomendacijomis, git refs suma git refs list (slapyvardis git for-each-ref) Ir git refs exists (panašus į git show-ref --existsJie nesiūlo precedento neturinčių galimybių, bet jie sutelkia dažnas operacijas nuorodų pagal vieną komandą.

Mažas, bet naudingas: dabar git cmd --help-all Tai taip pat veikia už saugyklos ribųTai leidžia lengvai pasiekti visuotinę pagalbą nieko inicijuojant.

Priežiūra ir našumas

„Git 2.52“ pristato užduotį geometric per git maintenance Kai tik įmanoma, vengiama visko perpakavimo ir rečiau šalinami nepasiekiami objektai. Užduotis tikrina paketus, kad sudarytų geometrinė progresija pagal objektų skaičių ir sutankinti negenint, kai tai įmanoma; jei operacija baigtųsi vienu krūmu, atlikite git gc tinka sutvirtinimui ir genėjimui.

Kalbant apie greitį, yra išmatuojamų laimėjimų: git describe Dabar ji naudoja prioritetinę eilę ir gauna maždaug 30% našumas; git remote rename optimizuoja nuorodų pervadinimą; git ls-files Tai išlaiko indeksą išsklaidytą daugiau atvejų; git log -L Tai leidžia išvengti tam tikrų medžio lygio skirtumų sujungiant elementus, taip pagreitinant analizę; ir biblioteka xdiff Jame yra keletas optimizavimų, kurie Patobulinti skirtumai ir sujungimas failo lygiu.

Saugumas ir „Git 3.0“ planas

Perėjimas nuo SHA-1 prie SHA-256 tęsiasi. Pirmieji SHA-256 elementai pasirodo 2.52 versijoje. algoritmų sąveikumasTikslas – leisti saugykloms su skirtingais maišos kodais sklandžiai keistis pakeitimais. Tai vis dar yra parengiamieji darbai, tačiau jie atveria kelią kitai didelei versijai.

Kitas „Git 3.0“ planuojamas pakeitimas yra tas, kad numatytoji šaka bus vadinama „main“. Tai įtraukta nuo 2.52 versijos. užuominos ir pagalbos pranešimai Siekiant palengvinti šį pokytį, kiekvienas, norintis pasiekti pažangą, gali sudaryti susitarimą su vėliava WITH_BREAKING_CHANGES išbandyti suplanuotą elgesį.

Taip pat, kaip pasirinktinį variantą, yra apsaugotas „Rust“ kodu WITH_RUSTkuris įgyvendina kintamo pločio sveikųjų skaičių kodavimą/dekodavimą. Šioje versijoje tai nėra privaloma, o „Git 2.52“ veikia ir be „Rust“ kompiliatoriaus, bet Tikimasi, kad „Git 3.0“ to pareikalaus ir išplėsti perrašytus kūrinius.

Darbo eigų ir naudojimo patogumo patobulinimai

Naudojimas pakeisto kelio „Bloom“ filtraiTikimybinis filtras, kuris pagreitina keliones, kai jos susiaurinamos pagal maršrutus. Dabar jie naudojami net tada, kai kelio specifikacija yra daliniai pakaitos simboliai (pvz., foo/bar/*/baz) ir scenarijuose, kuriuose yra keli dominantys maršrutai, naudingos tokios užklausos kaip last-modified ir kelios istorijos komandos.

git sparse-checkout pridėti veiksmą clean Norint išspręsti atvejus, kai keičiant dominančių sričių apibrėžimą, failai paliekami iš pasirinkimo. Vienu žingsniu galite valyti darbinį medį nepageidaujamų elementų.

Kiti naudingi papildymai: naujas kintamasis commitGraph.changedPaths aktyvuoti pagal numatytuosius nustatymus --changed-paths en git commit-graph; parinktis stash.indexgit stash pop/apply elgiasi taip, lyg būtų iškviestas su --index; git diff-tree gauna --max-depth; git fast-import dabar tvarko pasirašytas etiketes; ir git repo info Išmokite pranešti apie objekto formatą ir gauti palaikymą -z.

„Git 2.52“ prieinamumas

„Git 2.52“ šaltinio kodą galima atsisiųsti iš oficiali svetainė kad jį sukompiliuotų vietoje. Jis turėtų pasirodyti artimiausiomis dienomis ir savaitėmis. pagrindinių platinamųjų distribucijų saugyklos Europoje naudojamos GNU/Linux sistemos („Debian“, „Ubuntu“, „Fedora“, „openSUSE“, „Arch“ ir kt.) jau turi tokias tvarkykles kaip „Homebrew“, „MacPorts“ ar „Chocolatey“, kurių pakavimo laikas įprastas.

Su šia versija „Git“ sustiprina savo kasdienes operacijas su greitesnės ir naudingesnės komandosSupaprastinta priežiūros rutina ir pirmieji perėjimo prie SHA-256 elementai dabar yra „main“ šakoje kaip numatytoji. Atnaujinusieji dabar gali ją išbandyti. git last-modifiednaujoji git repogeometrinė užduotis git maintenance ir kiti pakeitimai, kurie be jokio garso supaprastina naudojimąsi tiek mažose, tiek milžiniškose saugyklose.

GitLab Duo agentas
Susijęs straipsnis:
„GitLab Duo“ agentų platforma: nauja „DevSecOps“ bendradarbiavimo su dirbtinio intelekto agentais era