Hva er nytt i Git 2.52: kommandoer, ytelse og sikkerhet

  • Nye kommandoer: git last-modified, git repo og tillegg til git refs for vanlige operasjoner.
  • Forbedret vedlikehold: geometrisk oppgave i git-vedlikehold og flere ytelsesoptimaliseringer.
  • Sikkerhet pÃ¥gÃ¥r: første skritt mot SHA-1/SHA-256-interoperabilitet og en standardendring til "main" i neste store utgivelse.
  • Flere verktøy: forbedringer av Bloom-filtre, opprydding av sparse-checkout og nye funksjoner i commit-graph, stash og diff-tree.

git 2.52

git 2.52 nå tilgjengelig som en stabil oppdatering til dette populære distribuerte versjonskontrollsystemet. Versjonen leveres med Nye funksjoner, vedlikeholdsjusteringer og ytelsesforbedringer Resultatet av arbeidet til mer enn 94 samarbeidspartnere, 33 av dem for første gang i prosjektet.

Blant de mest bemerkelsesverdige endringene er nye underkommandoer for Ã¥ utforske repositorier, en smartere vedlikeholdsarbeidsflyt og fremgang mot overgangen til SHA-256. Alt dette leveres med en konsekvent og diskret tilnærming, med praktisk tilnærming som administrerer arkiver av varierende størrelser.

Nye git 2.52-kommandoer for å utforske repositorier

Den mest slående nyheten er git last-modifiedUtviklet for effektivt å hente den nyeste commiten som berørte hver bane. I repositorier med mange oppføringer unngår denne tilnærmingen gjentatte historikkgjennomganger og kan flere ganger raskere enn å kjede sammen ls-tree + logIfølge interne tester, reduseres tiden fra sekunder til millisekunder i virkelige scenarier.

Motor last-modified Den ble utviklet over år på GitHub under navnet skyldtresom har gitt dem næring til deres «skyld» på trenivå siden 2012. Deretter, GitLab-ingeniører De polerte patchsettet for å integrere det i Git 2.52, selv om det fortsatt er funksjoner som må legges til, som for eksempel en diskformat for å mellomlagre resultater fra tidligere henrettelser.

Eksperimentvarianten kommer også git repoEn paraply for konsultasjon av funksjoner i arkivet. Med git repo info kan du si om det er Bart o grunne, formatet til objekter og referanser, og med git repo structure er trykt strukturell statistikk (antall commits, trær, blobs, grener, tagger osv.). Videre, info inkluderer det forkortede alternativet -z og er i stand til rapporter objektformatet brukt.

For de som jobber på lavt nivå med referanser, git refs Suma git refs list (alias av git for-each-ref) Og git refs exists (lik git show-ref --existsDe tilbyr ikke enestående muligheter, men de konsentrerer hyppige operasjoner av referanser under én kommando.

Liten, men nyttig: nå git cmd --help-all Det fungerer også utenfor et arkivDette gjør det enkelt å få tilgang til global hjelp uten å måtte initialisere noe.

Vedlikehold og ytelse

Git 2.52 introduserer en oppgave geometric innenfor git maintenance Den unngår alt-i-ett-ompakking når det er mulig, og fjerner uoppnåelige objekter sjeldnere. Oppgaven inspiserer pakkene for å danne en geometrisk progresjon etter antall objekter og komprimer uten beskjæring når det er passende; hvis operasjonen skulle ende i én pakke, utfør en git gc komplett for konsolidering og beskjæring.

Når det gjelder hastighet, er det målbare fremskritt: git describe Den bruker nå en prioritert kø og får rundt en 30 % avkastning; git remote rename optimaliserer omdøping av referanser; git ls-files Det holder indeksen spredt i flere tilfeller; git log -L Den unngår visse forskjeller på trenivå i sammenslåinger, noe som fremskynder analysen; og biblioteket xdiff Den inneholder flere optimaliseringer som Differanse og sammenslåing er forbedret på filnivå.

Sikkerhet og veibeskrivelse til Git 3.0

Overgangen fra SHA-1 til SHA-256 fortsetter. De første elementene i SHA-256 dukker opp i versjon 2.52. interoperabilitet mellom algoritmerMålet er å la repositorier med forskjellige hasher utveksle endringer sømløst. Det er fortsatt et grunnleggende arbeid, men det baner vei for den neste store utgivelsen.

En annen planlagt endring for Git 3.0 er at standardgrenen skal hete «main». Dette har vært inkludert siden versjon 2.52. ledetråder og hjelpemeldinger For å legge til rette for den endringen, og alle som ønsker å komme videre, kan kompilere med flagget WITH_BREAKING_CHANGES å teste planlagt atferd.

Den inkluderer også, som et alternativ, rustkode beskyttet av WITH_RUSTsom implementerer koding/dekoding av heltall med variabel bredde. I denne versjonen er det ikke obligatorisk, og Git 2.52 fungerer uten Rust-kompilatoren, men Git 3.0 forventes å kreve det og utvide de omskrevne stykkene.

Forbedringer i arbeidsflyter og brukervennlighet

Bruken av endrede bane Bloom-filtreEt sannsynlighetsfilter som fremskynder reiser når de er snevret inn etter ruter. Nå brukes de selv når stispesifikasjon den inneholder delvise jokertegn (for eksempel foo/bar/*/baz) og i scenarier med flere interessante ruter, noe som er nyttig for spørringer som de av last-modified og flere historiekommandoer.

git sparse-checkout legg til handlingen clean For å løse tilfeller der filer utelates fra utvalget når definisjonen av interesseområder endres. Med ett enkelt trinn kan du rengjør arbeidstreet av uønskede elementer.

Andre nyttige tillegg: ny variabel commitGraph.changedPaths å aktivere som standard --changed-paths en git commit-graph; alternativ stash.index slik at git stash pop/apply oppfører seg som om den ble påkalt med --index; git diff-tree recibe --max-depth; git fast-import nå administrerer signerte etiketter, Og git repo info Lær å rapportere objektformat i tillegg til støtte for -z.

Git 2.52 tilgjengelighet

Kildekoden for Git 2.52 kan lastes ned fra offisiell side å kompilere den lokalt. Den bør komme i løpet av de kommende dagene og ukene. arkiver for hoveddistribusjonene GNU/Linux i Europa (Debian, Ubuntu, Fedora, openSUSE, Arch, osv.) har allerede administratorer som Homebrew, MacPorts eller Chocolatey, med vanlige pakketider.

Med denne utgivelsen styrker Git sin daglige drift med raskere og mer nyttige kommandoerEn mer strømlinjeformet vedlikeholdsrutine og de første byggesteinene i overgangen til SHA-256 er nå i «main» som standardgren. De som oppgraderer kan nå teste det. git last-modifieddet nye git repoden geometriske oppgaven til git maintenance og resten av justeringene som, uten å lage en lyd, jevner ut opplevelsen i både små og store arkiver.

GitLab Duo-agent
Relatert artikkel:
GitLab Duo Agent Platform: Den nye æraen for DevSecOps-samarbeid med AI-agenter