KĂ€idud versiooni kontrollisĂŒsteemi allikakoodide Git 2.51

PĂ€rast kahe kuu arengut esitati vĂ€lja jagatud allikakoodihalduse sĂŒsteemi Git 2.51 vĂ€ljaanne. Git iseloomustab kĂ”rge jĂ”udlus ja see pakub vahendeid mittelineaarseks arenduseks, mis pĂ”hinevad harude ja haruĂŒhenduste juhtimisel. Ajaloo terviklikkuse ja tagasivaatemuutuste suhtes vastupidavuse tagamiseks kasutatakse mittevisad tĂ”estamist kogu varasema ajaloo ĂŒlendamiseks igas kinnituses, samuti arendajate digiallkirjadega eraldi siltide ja kinnituste autentimist. Git kood jagatakse GPLv2+ litsentsi alusel.

KÀesolevas versioonis on vÔrreldes eelneva versiooniga vastu vÔetud 506 muudatust, mille on ette valmistanud 91 arendajat (21 neist osales Git-i arendamises esmakordselt). Peamised uuendused (1, 2, 3):

  • Parandatud on kĂ€su "git push" ja "git fetch" jĂ”udlust suure viidete arvuga hoidlatest. Kiirus on saavutatud viidete grupiviisilise uuendamise kaudu, kus ĂŒhes tehingus töödeldakse mitu viidet, selle asemel, et iga viite uuendamiseks luua eraldi tehing. Optimeerimine on oluliselt suurendanud "reftable" tagumise poola jĂ”udlust, mis ĂŒletab nĂŒĂŒd "files" tagaosa jĂ”udlust. NĂ€iteks katsehoidlas, kus on 10 000 viidet, kasvas "git fetch" jĂ”udlus "reftable" tagaosa kasutamisel 22 korda, samas kui "files" tagaosa puhul vaid 1,25 korda. "Git push" puhul oli kasv vastavalt 18 ja 1,21 korda.
  • Pakutud on uus meetod pakitakse hoidla osi, mis ei ole seotud ulatuslike objektide jĂ€lgimisega, millele ei ole hoidlas viiteid (nendele viidatud harud vĂ”i sildid). Teave ulatuslike objektide kohta salvestatakse eraldi pakifailidesse ("cruft packs"), mis tĂ”i kaasa vajaduse neid peegeldada mitme pakiga indeksites MIDX (multi-pack index), et katta esialgu ulatuslikud objektid, mis olid ainult cruft-pakis, kuid said seejĂ€rel kĂ€ttesaadavaks, kui neile viidati.

    Uues versioonis tagatakse pack-failide tĂ€ielikult ĂŒmber pakkimise kĂ€igus tĂ€iendavate koopiate sĂ€ilitamine, mis sisaldavad ainult cruft-failides hoitavaid saavutatavaid objekte. Selline muudatus garanteerib, et pack-failide komplektis, mis kasutatakse saavutatavate objektide hoidmiseks, ei ole objekte, mis viitavad muudele objektidele, mis on hoitud vĂ€ljaspool seda komplekti. Cruft-failidesse kuuluvate mittevĂ”etavate sisu vĂ€ljajĂ€tmiseks mitme paki indeksitest (MIDX) on ette nĂ€htud seade „repack.MIDXMustContainCruft“, mis vĂ”imaldab oluliselt vĂ€hendada nende indeksite suurust. Seadme aktiveerimine GitHubi hoidlas vĂ”imaldas MIDX-indeksite suurust vĂ€hendada 38%, kiirendada MIDX- indeksitesse kirjutamist 35% ja parandada lugemise efektiivsust 5%.

  • KĂ€sku „git pack-objects“ on lisatud valik „—path-walk“, mis aktiveerib uue meetodi objektide teabe kogumiseks pack-failide ĂŒmber pakkimise ajal. Erinevalt objektide lĂ€bivaatamisest versioonide jĂ€rjekorras, vĂ”imaldab „—path-walk“ reĆŸiim objekte lĂ€bi failiteede lĂ€bida, mis vĂ”imaldab korraga pakkida kĂ”ik objektid, millel on sama failitee. Selline lĂ€henemine vĂ”imaldab vĂ€ltida heuristikat, mis kasutab rĂ€sivÀÀrtusi objekti ja tema failitee vahelise seose mÀÀramiseks, ning kĂ”rvaldada objektide sorteerimise pakendamise eel. „—path-walk“ reĆŸiimi kasutamisel on genereeritud pack-failide maht oluliselt vĂ€iksem kui objektide grupeerimisel rĂ€sivÀÀrtuste abil.
  • On mÀÀratletud formaat salvestatud tööruumi ja indeksite vahetamiseks hoidlas, mis luuakse kĂ€su „git stash“ abil. Uus formaat vĂ”imaldab salvestatud muudatusi (stash-kirjed) kodeerida commitide jadas. Importimiseks ja eksportimiseks on ette nĂ€htud alamehandud „git stash import“ ja „git stash export“, mida saab kasutada salvestatud olekute edasiviimiseks ĂŒhest sĂŒsteemist teise ning teostada push vĂ”i pull operatsioone nende olekute puhul nagu tavapĂ€raste harude vĂ”i siltidega. git stash export —to-ref refs/stashes/my-stash git push origin refs/stashes/my-stash 
 git fetch origin ‘+refs/stashes/*:refs/stashes/*’ git stash import refs/stashes/my-stash
  • KĂ€sk «git cat-file», mis vĂ€ljastab mÀÀratud objektide sisu, on saanud vĂ”imaluse kuvada teavet puuduvate objektide kohta (nĂ€iteks reposti vigastuse tĂ”ttu) ja submoodulite kohta, kui kasutada valikuid «—batch» ja «—batch-check». Varem, kui submooduli teed mÀÀrati, vĂ€ljendas kĂ€sk «git cat-file —batch-check» «puuduvad», kuid nĂŒĂŒd kuvab objekti identifitseerija.
  • KĂ€sk «git log» kasutab Bloom-filterite pĂ”hiseid optimeerimisi, et kiirendada muudatuste ajaloos otsimist, kui mÀÀratakse mitu faili teed, nĂ€iteks «git log — path/to/a path/to/b».
  • KĂ€sk «git switch» ja «git restore» on stabiliseeritud, neid on alates 2019. aastast kĂ€sitletud eksperimentaalsetena. Need kĂ€sud esitatakse kui kaasaegsed ekvivalendid «git checkout», eraldades sellised vĂ€he seotud funktsioonid nagu harude manipuleerimine (vahetamine ja loomine) ja failide taastamine töökaustas.
  • KĂ€sk «git whatchanged», mis on ekvivalentne «git log —raw»-iga, on ebaĂ”nnestunud ja plaanitakse eemaldada Git 3.0 harus.
  • KĂ€sule «git for-each-ref» on lisatud valik «—start-after», mida saab kasutada koos valikuga «—count», et korraldada lehe kaupa vĂ€ljundit.
  • KĂ€sule «git merge» ja «git pull» on lisatud valik «—compact-summary», et kasutada kompaktset kokkuvĂ”tteformaati muudatuste kohta, selle asemel et kasutada diffstat formaati.
  • Git koodibaasi on lubatud kasutada mĂ€rksĂ”na «bool», mis ilmus C99 standardis. Samuti on dokumenteeritud mĂ”ned C99 funktsioonid, mida katsetatakse Gitis (nĂ€iteks plaanitakse 2026. aasta keskpaiku lubada konstruktsioonide «(struct foo){ .member = value };» kasutamine). C99 toetav kompilaator on Gitile kohustuslik alates 2021. aastast, kuid C99 spetsifikatsiooni vĂ”imalused rakendatakse vĂ€ga ettevaatlikult, et sĂ€ilitada ĂŒhilduvus kompilaatoritega, mis toetavad seda standardit vaid osaliselt.
  • PatĆĄide vastuvĂ”tu reeglitesse on tehtud muudatused, mis vĂ”imaldavad saata patĆĄe all pseudoniimi, mitte ainult arendaja tegeliku nime all. Muudatus vastab Linuxi tuuma patĆĄide vastuvĂ”tu reeglitele.
  • Uuendatud on ĂŒhilduvuse rikkumiste loetelu, mis rakendatakse Git 3.0 harus. Oluliste muudatuste seas eelseisvas Git 3.0 vĂ€ljaandes on vaikimisi ĂŒleminek objektide identifikaatoritele, mis pĂ”hinevad SHA-256 krĂŒptograafilisel algoritmil, uute hoidlate algatamisel, ning «reftable» formaadi kasutuselevĂ”tt hoidlates harude ja mĂ€rkmete viidete salvestamiseks (rakendatud on plokkhÀÀlestus JGit projektilt, mis on optimeeritud vĂ€ga suure arvu viidete salvestamiseks).

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster