Esitati kĂ€ibel jaotatud lĂ€htefailide haldamise sĂŒsteemi Git 2.37. Git on ĂŒks populaarsemaid, usaldusvÀÀrsemaid ja kĂ”rge jĂ”udlusega versioonihaldussĂŒsteeme, mis pakub paindlikke mittelineaarse arenduse vahendeid, mis pĂ”hinevad harude ja ĂŒhenduste loomisel. Ajaloo terviklikkuse tagamiseks ja muude muudatuste resistentsuse tagamiseks kasutatakse kĂ”igi varasemate ajaloode vaikimisi hash-koodimist igas commit'is, samuti on vĂ”imalik arendajate digitaalse allkirjaga kinnitada ĂŒksikute sildide ja commit'ide autentsust.
VÔrreldes eelmise versiooniga on uues versioonis rakendatud 395 muudatust, mille ette valmistas 75 arendajat, kellest 20 osaleb arengus esmakordselt. Peamised uuendused:
- Poolikute indeksite (sparse index) mehhanism on viidud valmis laialdaseks kasutamiseks, hĂ”lmates vaid osa hoidlast. Poolikud indeksid vĂ”imaldavad suurendada jĂ”udlust ja sÀÀsta ruumi hoidlates, kus viiakse lĂ€bi osalisi kloonimise (sparse-checkout) operatsioone vĂ”i töötatakse mittetĂ€ieliku hoidla koopia ĂŒle. Uues versioonis lĂ”petati töö poolikute indeksite integreerimise kallal kĂ€sklustesse âgit showâ, âgit sparse-checkoutâ ja âgit stashâ. KĂ”ige mĂ€rgatavam kasu jĂ”udlusest, mis tuleneb poolikute indeksite kasutamisest, on tĂ€heldatud kĂ€sus âgit stashâ, mille tĂ€itmise kiirus on mĂ”nel juhul tĂ”usnud 80%.
- Rakendatud on uus mehhanism "cruft packs" jĂ”udmatu objektide (unreachable) pakkimiseks, millele hoidlas puuduvad lingid (harud ega sildid ei viita neile). JĂ”udmatu objektid eemaldatakse prĂŒgikogujaga, kuid enne eemaldamist jÀÀvad nad teatud ajaks hoidlasse, et vĂ€ltida vĂ”idujooksu olukordi. JĂ”udmatu objektide jĂ€lgimise perioodi jĂ€lgimiseks on vajalik nende sidumine muudatuste ajamĂ€rkidega, mis ei luba neid hoida ĂŒhes pack-failis, kus kĂ”ik objektid jagavad sama muudatuste aega. Varem kasutatud iga objekti salvestamine eraldi faili pĂ”hjustas probleeme, kui oli palju uusi jĂ”udmatu objekte, mis veel ei olnud eemaldamise alla kuuluvad. Pakutud mehhanism "cruft packs" vĂ”imaldab kĂ”ik jĂ”udmatu objektid hoida ĂŒhes pack-failis, ning iga objekti muudatusaja andmeid kajastavad eraldi tabelis, mis hoitakse failis laiendiga ".mtimes".
- Windowsi ja macOS-i jaoks on rakendatud sisseehitatud failisĂŒsteemi muudatuste jĂ€lgimise mehhanism, mis vĂ”imaldab vĂ€ltida kogu töökausta lĂ€bimist selliste toimingute nagu "git status" teostamisel. Varem vĂ”is muudatuste jĂ€lgimise kaudu hook'ide abil kasutada vĂ€liseid utiliite nagu Watchman, kuid see nĂ”udis tĂ€iendavate programmide installimist ja seadistamist. NĂŒĂŒd on see funktsionaalsus sisseehitatud ja selle aktiveerimiseks vĂ”ib kasutada kĂ€sku "git config core.fsmonitor true".
- KĂ€skluses "git sparse-checkout" on alternatiivse reĆŸiimi "âcone" toetamine kuulutatud aegunuks, mis vĂ”imaldas mustrite mÀÀratlemisel osalist kloonimist, et nimetada kloonimise toimingutesse kuuluvad eraldi failid, kasutades " .gitignore" sĂŒntaksit, mis ei vĂ”imalda kasutada osalisi indekseid optimeerimise jaoks.
- Suurendatud paindlikkust fsync() kutsumise seadistamiseks andmete salvestamiseks kettale. Parameetrisse âcore.fsyncMethodâ on lisatud toetuse strateegia sĂŒnkroniseerimisele âbatchâ, mis vĂ”imaldab kiirendada töötlust suure hulga eraldi failide kirjutamisel, akumuleerides muudatusi tagasi kirjutamise vahemĂ€lles, mis vĂ€rskendatakse ĂŒhe fsync() kutsumisega. Teostatud test, kus kĂ€suga âgit addâ lisati 500 faili, nĂ”udis uue reĆŸiimi sisselĂŒlitamisel 0,15 sekundit, samas kui iga faili jaoks fsync() kutsumiseks kulus 1,88 sekundit, ja ilma fsyncita â 0,06 sekundit.
- Harude sirvimise kĂ€skudesse, nagu âgit logâ ja âgit rev-listâ, on lisatud vĂ”imalus â--since-as-filter=Xâ, mis vĂ”imaldab filtreerida teavet komiteede kohta, mille loomise aeg on vanem kui âXâ. Erinevalt valikust â--sinceâ on uus kĂ€sk rakendatud filtrina, mis ei peata lĂ€bimist pĂ€rast esimest komiteed, mis on vanem mÀÀratud ajast.
- KĂ€sus âgit remoteâ, kui lipu â-vâ kasutamine nĂ€itab teavet osaliste kloonide kohta.
- Lisatud seadistus âtransfer.credentialsInUrlâ, mis vĂ”ib vastu vĂ”tta vÀÀrtusi âwarnâ, âdieâ ja âallowâ. Kui parameetris âremote..urlâ on esitatud mandaadid avatud tekstina, lĂ”peb katsed âfetchâ vĂ”i âpushâ teostada veaga, kui seadistus âtransfer.credentialsInUrlâ on mÀÀratud vÀÀrtusele âdieâ, vĂ”i hoiatusega, kui vÀÀrtus on âwarnâ.
- Vaikimisi on kĂ€ivitatud uus interaktiivse reĆŸiimi rakendus kĂ€sule âgit add -iâ, mis on kirjutatud Perlilt C keelele.
Allikas: opennet.ru
