Esitatud jaoturite sĂŒsteemi Git 2.54 vĂ€ljaanne. Git eristub kĂ”rge jĂ”udlusega ja pakub mittelineaarset arendust, mis pĂ”hineb harude ja harude ĂŒhendamise vahenditel. Ajaloo terviklikkuse ja tagantjĂ€rele tehtud muudatuste vastupidavuse tagamiseks kasutatakse iga commit'i juures kogu ajaloo varjatut kiishash'i ja arendajate allkirjadega kinnitusi eraldi siltide ja commit'ide jaoks. Git'i kood on litsentseeritud GPLv2+ alla.
Uues versioonis on vÔrreldes eelneva vÀljaandega 770 muudatust, mille on valmistanud 137 arendajat (66 neist osaleb Git'i arenduses esmakordselt). Peamised uuendused:
- Rakendatud on kĂ€sk âgit historyâ, mis pakub eksperimenteerimisvĂ”imalusi muudatuste ajaloo ĂŒmberkirjutamiseks, mis on kasutamisel lihtsamad ja turvalisemad kui commit'ide rebasing'i kĂ€sk âgit rebaseâ. Pakutakse kahte toimingut:
- âgit history reword â antud commit'i sĂ”numi ĂŒmberkirjutamiseks ilma töökausta ja indeksi muutmiseta (kĂ”ik, vĂ€lja arvatud mĂ€rkused, jÀÀb muutmata). NĂ€iteks trĂŒkivea parandamiseks.
- âgit history split â antud commit'i interaktiivseks jagamiseks kahte erinevasse commit'i, kus valitud osad kantakse algsest commit'ist tĂ€iendavasse commit'i.
Tulevastes vĂ€ljaannetes oodatakse tĂ€iendavate kĂ€skude lisamist: âgit history fixupâ commit'i parandamiseks, âgit history dropâ commit'i kustutamiseks, âgit history reorderâ commit'ide jĂ€rjekorra muutmiseks ja âgit history squashâ commit'ide ĂŒhendamiseks.
- Uus meetodide rakendamine töötlejatest (hook) konfigureerimisfailides on ellu viidud. Selle asemel et paigutada töötlejaskripte kausta â.git/hooksâ igas hoidlas, saab nĂŒĂŒd töötlejate kutsumise kĂ€sud mÀÀrata otse konfigureerimisfailidesse. Seadeid saab siduda kas hoidla vĂ”i mÀÀrata konfigureerimisfailides, mis kehtivad kĂ”igi hoidlate jaoks (/etc/gitconfig) vĂ”i kasutaja hoidlate jaoks (~/.gitconfig). VĂ”imalik on siduda mitu töötlejat ĂŒhele sĂŒndmusele. Skriptid kaustast â.git/hooksâ kutsuvad endiselt toiminguid, kuid need kĂ€ivitatakse pĂ€rast konfigureerimisfailide töötlejaid. Töötlejate nimekirja vaatamiseks tuleb kasutada kĂ€sku âgit hook listâ, ja valikulise töötlejate kutsumise keelamiseks seadistust âhook..enabled = falseâ. [hook âlinterâ] event = pre-commit command = ~/.bin/linter âcpp20 [hook âno-leaksâ] event = pre-commit command = ~/.bin/leak-detector $ git hook list pre-commit global linter ~/.bin/linter âcpp20 local no-leaks ~/.bin/leak-detector
- KĂ€skluses âgit maintenanceâ on vaikimisi rakendatud strateegia âgeometricâ (âgit config set maintenance.strategy geometricâ), mis vĂ€hendab suurte monorepositorite hooldusaega. Uus strateegia, vĂ”rreldes varasema, mis kasutas kĂ€sku âgit gcâ, vĂ€ldib kĂ”igi objektide uuesti pakkimist ja vĂ€listab liialt ressursikalleid toiminguid, nagu kĂ”igi pakifailide ĂŒhendamine (kui vĂ”imalik, toimub ĂŒhendamine osade kaupa ja ilma kustutamata kustutatud objekte).
- Objektide andmebaas (ODB) ja seotud API-d on ĂŒmber korraldatud uuele arhitektuurile, mis pĂ”hineb pluginaarsetel tagamitel. Tehtud ĂŒmberkorraldust toetab objekti salvestamise formaadi abstraktsiooni ja tulevikus vĂ”imaldab rakendada selliseid funktsioone nagu alternatiivsed tagandid ja objektiformaadid, nĂ€iteks suuremate binaarfailide tĂ”husamaks salvestamiseks vĂ”i suurte git-haldamiste optimeerimiseks.
- Git repo struktuuri kĂ€su abil, mis toob vĂ€lja repositooriumi struktuuri, on tagatud mitte ainult ĂŒldise suuruse kuvamine, vaid ka iga tĂŒĂŒbi suurimate objektide nĂ€itamine, mis vĂ”imaldab suuruse hindamisel ilma kolmanda osapoole utiliidita git-sizer. $ git repo structure ⊠| * Suurimad objektid | | | * Kommid | | | * Maksimaalne suurus [1] | 17.23 KiB | | * Maksimaalsed vanemad [2] | 10 | | * Puud | | | * Maksimaalne suurus [3] | 58.85 KiB | | * Maksimaalsed sissekanded [4] | 1.18 k | | * Blobbid | | | * Maksimaalne suurus [5] | 1019.51 KiB | | * Sildid | | | * Maksimaalne suurus [6] | 7.13 KiB |
- Git replay kĂ€su abil, mida kasutatakse git rebase asemel ajaloo taastamiseks serveris , ilma tööpuudeta, on vaikimisi lisatud atomaarne viidete uuendamine (selle asemel et kuvada kĂ€su update-ref loend kĂ€sitsi tĂ€itmiseks), on sisse viidud vĂ”imalus "ârevert" muudatuste tĂŒhistamiseks mitme kommi seeriast, on tagatud tĂŒhjade tulemiskommide eemaldamine ja on vĂ”imalik taastada ajalugu kuni juurkommile.
- Git rev-list ja sarnastes kĂ€skudes on lisatud vĂ”imalus "âmaximal-only" ainult kommitte kuvamiseks, mis ei ole teiste kommitite kaudu kergesti kĂ€tte saadavad.
- Git repo info kĂ€sule on lisatud vĂ”imalus "âkeys" kĂ”igi tuntud vĂ”tmete loendi kuvamiseks.
- Git add -p kĂ€sus on koodi plokkide vahel navigeerimise ajal klahvide "J" ja "K" abil tagatud juba heaks kiidetud ja vahele jĂ€etud plokkide mĂ€rgistamine. On lisatud vĂ”imalus "âno-auto-advance" automaatse ĂŒlemineku keelamiseks jĂ€rgmisele failile, et enne kommitimist eelnevaid faile uuesti vaadata.
- Gitwebi veebiliidese optimeerimine on lÀbi viidud mobiilsete seadmete jaoks.
- Git apply âdirectory kĂ€sus on failide teed, nagu "./un/../normalized/path", enne kasutamist normaliseeritud.
- On dokumenteeritud vÔimalus lisada oma allkommandod, paigaldades failid "git-<cmd>" kÀivitatavate failide katalooge.
- Git send-email kÀsule on lisatud kliendisertifikaatide tugi.
- Git status kÀsule on sisse viidud seadistus "status.compareBranches", mille kaudu saab mÀÀrata harud, mille suhtes praegust haru vÔrreldakse. [status] compareBranches = @{upstream} @{push}
- Git rebase kĂ€sule on lisatud vĂ”imalus "âtrailer" meetaandmete lisamise lihtsustamiseks kĂ”ikidele kommittele. git rebase âtrailer "Reviewed-by: Test <test@example.com>"
- Git fast-import kÀskkonda on lisatud vÔimalus muuta allkirju, mis on pÀrast importimist kehtetuks muutunud.
- Lisatud on tugi mitme paketi indeksite MIDX (multi-pack index) kompaktsimiseks, kus vĂ€iksed MIDX-indeksi kihid, mis sisaldavad objektide kĂ€ttesaadavuse teavet ja nendega seotud bitmap-faile, ĂŒhinevad omavahel, mis vĂ€hendab vanadesse hoidlate kuhjunud kihtide arvu.
- Git backfill kĂ€sku on rakendatud vĂ”imalus mÀÀrata revisjone (commit vahemikud) ja teepikkuse maskid (pathspec), et piirata laaditavaid muudatuste ajalugu osi. git backfill main~100..main git backfill â '*.c'
- Lisatud on alternatiivsed vormid git config list kĂ€su kutsumiseks â git config -l ja git config âlist.
- Lubatud on kasutada mitte-ASCII mÀrke kÀskude aliaste nimedes, mis on mÀÀratud konfiguratsioonifailis. [alias 'fetch'] command = fetch
- Muudetud on allkirjade kuvamist, mille GPG-vĂ”tme kehtivusaeg on lĂ”ppenud, kuid mis olid kommi allkirjastamise ajal kehtivad. Taolised allkirjad kuvatakse nĂŒĂŒd Ă”igena koos vĂ”tme aegumise mĂ€rgiga (varem kuvati neid punasega, mis jĂ€ttis mulje, et need ei ole kehtivad).
- HTTP kaudu hoidlate juurde pÀÀsemisel on tagatud 429 (Liialt palju pĂ€ringuid) veakoodi kĂ€sitlemine. Taolisi vigu kĂ€sitletakse nĂŒĂŒd mitte kui fataalset probleemi, vaid ajutise veana, mille puhul tuleks tegevus mĂ”ne aja pĂ€rast uuesti kordata. Uuesti proovimise viivitus mÀÀratakse 'http.retryAfter' valiku kaudu, korduste arv - 'http.maxRetries', ootamisaeg - 'http.maxRetryTime'.
Allikas: opennet.ru
