VĂ€lja anti versioonihaldussĂŒsteemi Git 2.52

PĂ€rast kolme kuu arendust on vĂ€lja antud hajutatud allikakoodihalduse sĂŒsteemi Git 2.52 versioon. Git eristub kĂ”rge jĂ”udluse poolest ja pakub vahendeid mitte-lineaarseks arendamiseks, mis pĂ”hinevad harude ja ĂŒhenduste loomisel. Ajaloo terviklikkuse ja tagasivaatelike muudatuste kindlustamiseks kasutatakse varasemate commitide kogu ajaloo varjatud rĂ€simist igas commit'is ning arendajate digitaalse allkirja kinnitust eraldi siltide ja commitite puhul. Git-i kood on litsentseeritud GPLv2+ alusel.

Uue versiooni vÔrdlemiseks eelmise vÀljaandega on vastu vÔetud 637 muudatust, mille on teinud 94 arendajat (33 neist osalesid Git-i arenduses esmakordselt). Peamised uuendused (1, 2, 3):

  • Lisatud kĂ€sk „git last-modified“, et kuvada failide loend antud revizyonis ja commit'id, mille kaudu viimaseid muudatusi igaĂŒhe jaoks tehti. $ git last-modified HEAD b56f6dcd7b4c90192018e848d0810f091d092913 test.h 29330ae4b820147c98e723399e9438c8bee60a8a test1.c 573ad8917beb99dc643b6e7f5c117a294384a575 test2.c
  • Lisatud kĂ€sk «git repo» andmete hankimiseks hoidlast. Pakutakse kahte alamkĂ€sku — «git repo info» ja «git repo structure», mis kuvavad hoidla seadeid ja struktuuri kohta teavet (nt saab teada hoidlas olevate linkide ja objektide arvu). $ git repo info object.format references.format object.format=sha1 references.format=reftable $ git repo structure | Hoidla struktuur | VÀÀrtus | | ——————— | —— | | * Viidatud | | | * Arv | 1983 | | * Harud | 4 | | * Sildid | 1125 | | * Kaugused | 854 | | * Teised | 0 | | | | | * JuurdepÀÀsetavad objektid | | | * Arv | 518955 | | * Commit'id | 77469 | | * Puud | 188865 | | * BLOB'id | 251631 | | * Sildid | 990 |
  • KĂ€sule «git refs» on lisatud kolm alamkĂ€sku, mis unifitseerivad killustatud ja kattuvad madala taseme toimingud linkide ĂŒle (git for-each-ref, git show-ref, git update-ref ja git pack-refs):
    • «git refs optimize» — linkide hoidmise backend'i optimeerimine (sarnane «git pack-refs»-iga).
    • «git refs list» — kĂ”igi linkide loendi kuvamine (sarnane «git for-each-ref» vĂ”i «git show-ref»-iga).
    • «git refs exists» — lingi olemasolu kontrollimine (sarnane «git show-ref —exists»-iga).
  • Eksportimiseks vĂ”i importimiseks mĂ”eldud commitide ajaloo formaat on laiendatud krĂŒptograafiliste allkirjade toetamise vĂ”imalusega, kasutades objekti identifikaatorina nii SHA-1 kui ka SHA-256 algoritme. KĂ€skluses „git fast-import“ on rakendatud allkirjastatud sildite toetust analoogselt allkirjastatud commitidele. Lisatud on valikud „—signed-commits=<reĆŸiim>“ ja „—signed-tags=<reĆŸiim>“ allkirjastatud commitide ja siltide töötlemise haldamiseks impordietapis (reĆŸiim vĂ”ib olla verbatim, warn-verbatim, warn-stri, strip vĂ”i abort).
  • KĂ€sku „git maintenance“ on lisatud uus strateegia „geometric“ („git config set maintenance.strategy geometric“), mis vĂ€hendab suurte monorepositoiumide hooldamise aega. Erinevalt varem saadaval olnud strateegiast, mis tugines „git gc“ kĂ€su loogikale, vĂ€ldib uus strateegia kĂ”igi objektide uuesti pakkimist ja vĂ€listab liigsete ressursinĂ”udlike operatsioonide, nĂ€iteks kĂ”igi pack-failide ĂŒhendamise (vajadusel toimub ĂŒhendamine osade kaupa ja ilma kustutatud objektide puhastamiseta).
  • Lisatud kĂ€sk «git sparse-checkout clean», et lihtsustada töökausta oleku taastamist, eemaldades failid, mis ei vasta uuele sparse-checkouti mÀÀratlusele ja mis ei peaks olema kohaliku koopia osana vastavalt praegustele sparse-checkouti seadetele.
  • Koodibaasi keerukuse vĂ€hendamiseks ja hooldamise lihtsustamiseks on tehtud refaktooring, et vĂ€hendada globaalmuutujate the_repository kasutamist.
  • Bloom filtreid on laiendatud, mis on tĂ”enĂ€osuslik struktuur mitme hulga kuuluvuse kontrollimiseks, lubades vale positiivset tulemust, kuid vĂ€listades olemasoleva elemendi vahelejĂ€tmise. Bloom filtreid rakendatakse nĂŒĂŒd muudatuste ajaloo kiireks otsimiseks, kui failide teede maskid on mÀÀratud, nĂ€iteks «foo/bar/*/baz».
  • Meeskonna "git describe" jĂ”udlust on tĂ”hustatud 30% vĂ”rra, kasutades prioriteetide jĂ€rjekorda. "git remote rename" operatsioonid on kiirenenud linkide ĂŒmbernimetamisel. "git ls-files" indeksite rakendamine on laienenud. "git log -L" kĂ€sk on mĂ€rgatavalt kiirem, kuna kolmikvĂ”rdluste ĂŒlemÀÀrased kasutused commitite ĂŒhendamisel on vĂ€listatud. On tehtud optimeerimisi xdiff raamatukogusse.
  • Pakuti vĂ”imalust kasutada Rusti keeles mĂ”nda sisemist funktsiooni, nĂ€iteks muutuva pikkusega tĂ€isarvude kodeerimist ja dekodeerimist. JavaScripti kood ei ole vaikimisi kasutusel ning selle aktiveerimiseks on vajalik mÀÀrata koostamisflagg WITH_RUST. Tulevikus on plaanis ĂŒmber töötada olulisemad Git-i sisekomponendid Rust-is ja lisada Rust Git 3.0-sse kohustuslikeks sĂ”ltuvusteks.
  • Uuendatud on loetelu ĂŒhilduvuse rikkumistest, mis rakendatakse Git 3.0 harus. Git 3.0 on otsustanud muuta vaike seadistust init.defaultBranch vÀÀrtuseks "main", st repodes, mis on loodud kĂ€suga "git init", nimetatakse vaike haru "main", mitte "master". Samuti tuuakse esile ĂŒleminek vaike alusel objektide identifikaatoritele, mis pĂ”hinevad SHA-256 krĂŒptograafilisel algoritmil uute repode algatamisel. Üksikute hash-algoritmide baasil repodes on push ja pull toimingute teostamise lihtsustamiseks antud vĂ”imalus kasutada teist hash-algoritmi.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster