Çfarë ka të re në Git 2.52: komandat, performanca dhe siguria

  • Komanda të reja: git last-modified, git repo dhe shtesa në git refs për operacione të zakonshme.
  • Mirëmbajtje e përmirësuar: detyrë gjeometrike në mirëmbajtjen e git dhe optimizime të shumëfishta të performancës.
  • Siguria në zhvillim e sipër: hapat e parë drejt ndërveprimit SHA-1/SHA-256 dhe një ndryshim i parazgjedhur në "kryesor" në versionin e ardhshëm kryesor.
  • Më shumë shërbime: përmirësime në filtrat Bloom, pastrim me kontroll të rrallë dhe veçori të reja në commit-graph, stash dhe diff-tree.

git 2.52

git 2.52 tani në dispozicion si një përditësim i qëndrueshëm për këtë sistem të njohur të kontrollit të versioneve të shpërndara. Versioni vjen me Karakteristika të reja, rregullime mirëmbajtjeje dhe përmirësime të performancës Rezultati i punës së më shumë se 94 bashkëpunëtorëve, 33 prej të cilëve për herë të parë në projekt.

Ndër ndryshimet më të dukshme janë nënkomandat e reja për eksplorimin e depove, një rrjedhë pune më e zgjuar e mirëmbajtjes dhe progresi drejt kalimit në SHA-256. E gjithë kjo ofrohet me një qasje të qëndrueshme dhe të përmbajtur, me qasje praktike që menaxhojnë depo me madhësi të ndryshme.

Komanda të reja git 2.52 për eksplorimin e depove

Risia më e habitshme është git last-modifiedI projektuar për të marrë në mënyrë efikase commit-in më të fundit që preku secilën shteg. Në depot me shumë hyrje, kjo qasje shmang përshkimet e përsëritura të historikut dhe mund të jetë disa herë më shpejt se zinxhiri i ls-tree + logSipas testeve të brendshme, duke zvogëluar kohën nga sekonda në milisekonda në skenarë të botës reale.

Motori last-modified Është zhvilluar gjatë viteve në GitHub nën emrin pemë fajiduke e ushqyer "fajin" e tyre në nivel peme që nga viti 2012. Më pas, Inxhinierët e GitLab Ata e përsosën setin e patch-eve për ta integruar atë në Git 2.52, megjithëse ka ende veçori për t'u shtuar, të tilla si një formatimi i diskut për të ruajtur rezultatet në memorien e përkohshme nga ekzekutimet e mëparshme.

Edhe ai eksperimental vjen git repoNjë ombrellë për konsultimin e veçorive të depozitës. Me git repo info a mund ta dish nëse është lakuriq o i cekët, formati i objekteve dhe referencave, dhe me git repo structure janë të shtypura statistika strukturore (numërimi i commit-eve, pemët, pikat, degët, etiketat, etj.). Për më tepër, info përfshin opsionin e shkurtuar -z dhe është i aftë të raporto formatin e objektit përdorur.

Për ata që punojnë në një nivel të ulët me referenca, git refs Suma git refs list (pseudonim i git for-each-ref) Dhe git refs exists (të ngjashme me git show-ref --existsAto nuk ofrojnë aftësi të papara, por ato përqendrojnë operacione të shpeshta të referencave nën një komandë të vetme.

E vogël por e dobishme: tani git cmd --help-all Gjithashtu funksionon jashtë një depojeKjo e bën të lehtë aksesin në ndihmë globale pa pasur nevojë të inicializoni asgjë.

Mirëmbajtja dhe performanca

Git 2.52 prezanton një detyrë geometric brenda git maintenance Shmang ripaketimet gjithëpërfshirëse sa herë që është e mundur dhe i krasit objektet e paarritshme më rrallë. Detyra inspekton paketat për të formuar një progresion gjeometrik sipas numrit të objekteve dhe ngjesh pa krasitje kur është e përshtatshme; nëse operacioni do të përfundonte në një pako të vetme, kryej një git gc i plotë për konsolidim dhe krasitje.

Sa i përket shpejtësisë, ka përparime të matshme: git describe Tani përdor një radhë prioritare dhe fiton rreth një Rendimenti 30%; git remote rename optimizon riemërtimin e referencës; git ls-files E mban indeksin të shpërndarë në më shumë raste; git log -L Shmang disa ndryshime në nivelin e pemës në bashkime, duke përshpejtuar analizën; dhe biblioteka xdiff Ai përfshin disa optimizime që Diferenca dhe bashkimi janë përmirësuar në nivel skedari.

Siguria dhe udhërrëfyesi për Git 3.0

Kalimi nga SHA-1 në SHA-256 vazhdon. Elementet e para të SHA-256 shfaqen në versionin 2.52. ndërveprimi midis algoritmeveQëllimi është që depot me hashe të ndryshme të shkëmbejnë ndryshimet pa probleme. Është ende një punë paraprake, por hap rrugën për versionin e ardhshëm të madh.

Një ndryshim tjetër i planifikuar për Git 3.0 është se dega e parazgjedhur do të quhet "main". Kjo është përfshirë që nga versioni 2.52. të dhëna dhe mesazhe ndihme Për të lehtësuar këtë ndryshim, dhe kushdo që dëshiron të ecë përpara mund të kompilojë me flamurin WITH_BREAKING_CHANGES për të testuar sjelljet e planifikuara.

Gjithashtu përfshin, si opsion, kodin e ndryshkut të mbrojtur nga WITH_RUSTi cili zbaton kodimin/dekodimin e numrave të plotë me gjerësi të ndryshueshme. Në këtë version nuk është i detyrueshëm dhe Git 2.52 funksionon pa kompilatorin Rust, por Git 3.0 pritet ta kërkojë atë dhe zgjeroni pjesët e rishkruara.

Përmirësime në rrjedhat e punës dhe përdorshmërinë

Përdorimi i filtra Bloom me shteg të ndryshuarNjë filtër probabilistik që përshpejton udhëtimet kur ato ngushtohen nga rrugët. Tani ato përdoren edhe kur specifikim rruge ai përmban karaktere të pjesshme të egra (për shembull, foo/bar/*/baz) dhe në skenarë me rrugë të shumta interesi, duke përfituar nga pyetje të tilla si ato të last-modified dhe disa komanda të historisë.

git sparse-checkout shto veprimin clean Për të zgjidhur rastet kur, kur përkufizimi i zonave të interesit ndryshohet, skedarët lihen jashtë përzgjedhjes. Me një hap të vetëm, mundeni pastroni pemën e punës të elementëve të padëshiruar.

Shtesa të tjera të dobishme: variabël i ri commitGraph.changedPaths për t'u aktivizuar si parazgjedhje --changed-paths en git commit-graphopsion stash.index për çfarë git stash pop/apply sillet sikur të ishte thirrur me --index; git diff-tree merr --max-depth; git fast-import Ahora menaxhon etiketat e nënshkruara; dhe git repo info Mësoni të raportoni formatin e objektit përveç mbështetjes për -z.

Disponueshmëria e Git 2.52

Kodi burimor për Git 2.52 mund të shkarkohet nga sit zyrtar për ta përpiluar atë në nivel lokal. Duhet të mbërrijë në ditët dhe javët në vijim. depo të shpërndarjeve kryesore GNU/Linux në Evropë (Debian, Ubuntu, Fedora, openSUSE, Arch, etj.) tashmë kanë menaxherë si Homebrew, MacPorts ose Chocolatey, me kohët e zakonshme të paketimit.

Me këtë version, Git forcon operacionet e tij të përditshme me komanda më të shpejta dhe më të dobishmeNjë rutinë mirëmbajtjeje më e efektshme dhe blloqet e para ndërtuese të kalimit në SHA-256 tani janë në degën "main" si dega e parazgjedhur. Ata që e përditësojnë tani mund ta testojnë atë. git last-modifiede reja git repodetyra gjeometrike e git maintenance dhe pjesa tjetër e rregullimeve që, pa bërë zhurmë, e zbutin përvojën si në depo të vogla ashtu edhe në ato gjigante.

Agjenti GitLab Duo
Artikulli i lidhur:
Platforma GitLab Duo Agent: Epoka e re e bashkëpunimit DevSecOps me agjentët e IA-së