
Git 2.52 nu tilgængelig som en stabil opdatering til dette populære distribuerede versionskontrolsystem. Versionen leveres med Nye funktioner, vedligeholdelsesjusteringer og forbedringer af ydeevnen Resultatet af arbejdet fra mere end 94 samarbejdspartnere, hvoraf 33 var med i projektet for første gang.
Blandt de mest bemærkelsesværdige ændringer er nye underkommandoer til udforskning af arkiver, en smartere vedligeholdelsesarbejdsgang og fremskridt hen imod overgangen til SHA-256. Alt dette leveres med en konsekvent og diskret tilgang, med praktisk tilgang der administrerer arkiver af varierende størrelser.
Nye git 2.52-kommandoer til at udforske repositorier
Den mest slående nyhed er git last-modifiedDesignet til effektivt at hente den seneste commit, der har berørt hver sti. I arkiver med mange poster undgår denne tilgang gentagne historikgennemgange og kan flere gange hurtigere end at kæde ls-tree + log sammenIfølge interne tests reduceres tider fra sekunder til millisekunder i virkelige scenarier.
Motor last-modified Det blev udviklet over år på GitHub under navnet skyldtræfodrer deres "skyld" på træniveau siden 2012. Efterfølgende, GitLab-ingeniører De polerede patch-sættet for at integrere det i Git 2.52, selvom der stadig er funktioner, der skal tilføjes, såsom en diskformatering til cacheresultater fra tidligere henrettelser.
Eksperimentvarianten ankommer også git repoEn paraply til søgning efter repository-funktioner. Med git repo info kan du fortælle om det er bare o lavvandet, formatet af objekter og referencer, og med git repo structure er trykt strukturel statistik (commit-antal, træer, blobs, grene, tags osv.). Desuden, info inkorporerer den forkortede mulighed -z og er i stand til rapporter objektformatet Brugt.
For dem, der arbejder på et lavt niveau med referencer, git refs Suma git refs list (alias af git for-each-ref) Og git refs exists (svarer til git show-ref --existsDe tilbyder ikke hidtil usete muligheder, men de koncentrerer hyppige operationer af referencer under én kommando.
Lille, men nyttig: nu git cmd --help-all Det virker også uden for et arkivDette gør det nemt at få adgang til global hjælp uden at skulle initialisere noget.
Vedligeholdelse og ydeevne
Git 2.52 introducerer en opgave geometric indenfor git maintenance Den undgår alt-i-én-ompakninger, når det er muligt, og fjerner uopnåelige objekter sjældnere. Opgaven inspicerer pakkerne for at danne en geometrisk progression efter antal objekter og komprimer uden beskæring, når det er relevant; hvis operationen ender i en enkelt pakke, udfør en git gc komplet til konsolidering og beskæring.
Med hensyn til hastighed er der målbare fremskridt: git describe Den bruger nu en prioriteret kø og vinder omkring en 30% ydeevne; git remote rename optimerer omdøbning af referencer; git ls-files Det holder indekset spredt i flere tilfælde; git log -L Det undgår visse diffs på træniveau i merges, hvilket fremskynder analysen; og biblioteket xdiff Den indeholder adskillige optimeringer, der Diff og merge er forbedret på filniveau.
Sikkerhed og køreplan til Git 3.0
Overgangen fra SHA-1 til SHA-256 fortsætter. De første elementer af SHA-256 vises i version 2.52. interoperabilitet mellem algoritmerMålet er at give repositories med forskellige hashes mulighed for problemfrit at udveksle ændringer. Det er stadig et grundlæggende arbejde, men det baner vejen for den næste store udgivelse.
En anden planlagt ændring til Git 3.0 er, at standardgrenen vil blive kaldt "main". Dette har været inkluderet siden version 2.52. ledetråde og hjælpebeskeder For at lette den ændring, og alle, der ønsker at komme foran, kan kompilere med flaget WITH_BREAKING_CHANGES at teste planlagt adfærd.
Den inkluderer også, valgfrit, rustkode beskyttet af WITH_RUSTsom implementerer kodning/afkodning af heltal med variabel bredde. I denne version er det ikke obligatorisk, og Git 2.52 fungerer uden Rust-compileren, men Git 3.0 forventes at kræve det og udvide de omskrevne stykker.
Forbedringer i arbejdsgange og brugervenlighed
Brugen af Bloom-filtre med ændret stiEt probabilistisk filter, der fremskynder rejser, når de indsnævres af ruter. Nu bruges de selv når stispecifikation contiene delvise jokertegn (f.eks. foo/bar/*/baz) og i scenarier med flere interessante ruter, hvilket gavner forespørgsler som dem af last-modified og adskillige historiekommandoer.
git sparse-checkout tilføj handlingen clean For at løse tilfælde, hvor filer udelades fra valget, når definitionen af ​​interesseområder ændres. Med et enkelt trin kan du rengør arbejdstræet af uønskede elementer.
Andre nyttige tilføjelser: ny variabel commitGraph.changedPaths at aktivere som standard --changed-paths en git commit-graph; mulighed stash.index så det git stash pop/apply opfører sig, som om den blev påkaldt med --index; git diff-tree recibe --max-depth; git fast-import nu administrerer signerede etiketter, Og git repo info Lær at rapportere objektformat udover understøttelse af -z.
Git 2.52 tilgængelighed
Kildekoden til Git 2.52 kan downloades fra officielt sted at kompilere den lokalt. Den burde ankomme i løbet af de kommende dage og uger. arkiver for de vigtigste distributioner GNU/Linux i Europa (Debian, Ubuntu, Fedora, openSUSE, Arch osv.) har allerede managere som Homebrew, MacPorts eller Chocolatey med de sædvanlige pakketider.
Med denne udgivelse styrker Git sin daglige drift med hurtigere og mere nyttige kommandoerEn mere strømlinet vedligeholdelsesrutine og de første byggesten i overgangen til SHA-256 er nu i "main" som standardgrenen. De, der opgraderer, kan nu teste det. git last-modifiedden nye git repoden geometriske opgave git maintenance og resten af ​​justeringerne, der uden at gøre det store problem, gør oplevelsen nem at bruge i både små og store arkiver.