PĂ€rast kolme kuu arendustööd on avaldatud jaotatud lĂ€htekoodi haldamise sĂŒsteemi Git 2.36 vĂ€ljaanne. Git on ĂŒks populaarsemaid, usaldusvÀÀrsemaid ja kĂ”rge jĂ”udlusega versioonihalduse sĂŒsteeme, mis pakub paindlikke mittelineaarse arenduse vahendeid, mis pĂ”hinevad harude ja harude ĂŒhendamise meetoditel. Ajaloo terveks hoidmiseks ja tagasivaatelike muutuste suhtes vastupidavuse tagamiseks kasutatakse iga commit'i puhul eelneva ajaloo suudluslikku hash'imist, samuti on vĂ”imalik arendajate digitaalsete allkirjadega kinnitada eraldi sildid ja commit'id.
Uue versiooni on lisatud 717 muudatust, mille ettevalmistamisel osales 96 arendajat, kellest 26 osales arenduses esmakordselt. Peamised uuendused:
- KĂ€skude «git log» ja «git show» juurde on lisatud valik «âremerge-diff», mis vĂ”imaldab nĂ€idata erinevusi ĂŒhise sulandumise tulemuse ja tegelike andmete vahel, nagu need kajastuvad commit'is pĂ€rast «merge» kĂ€su töötlemist. See vĂ”imaldab visuaalselt hinnata muudatusi, mis on tehtud konfliktide lahendamise kĂ€igus. Tavaline kĂ€sk «git show» eraldab erinevad konfliktide lahendused sissejuhatusest, mis raskendab muudatuste mĂ”istmist. NĂ€iteks alloleval ekraanipildil nĂ€itab rida «+/-» ilma sissejuhatuseta viimast konfliktide lahendust, mis on seotud esimese haru sha1 ĂŒmbernimetamisega oid'ks kommentaaris, samas kui «+/-» koos sissejuhatusega â algset konfliktide lahendust, mille pĂ”hjustas teises harus tĂ€iendava argumenti ilmumine funktsioonis dwim_ref().

Valiku «âremerge-diff» kasutamisel ei eraldu konfliktide lahenduste erinevused iga vanema haru jaoks, vaid nĂ€idatakse ĂŒldisi erinevusi faili vahel, mis sisaldab sulandumise konflikte, ja faili vahel, kus konfliktid on lahendatud.

- Suurem kohandamise paindlikkus kettaluukide kÀitumise resetimisel on saavutatud fsync() funktsiooni vÀljakutse kaudu. Varasemalt olemas olnud parameeter core.fsyncObjectFiles on jagatud kaheks konfigureeritavaks muutujaks: core.fsync ja core.fsyncMethod, mis vÔimaldavad rakendada fsync mitte ainult objektifailidele (.git/objects), vaid ka teistele git-struktuuridele, nagu lingid (.git/refs), reflog ja pakifailid.
Muutuja core.fsync vĂ”imaldab mÀÀrata nimekirja sisemistest Git-struktuuridest, mille jaoks tĂ€iendav fsync kutse tehakse pĂ€rast kirjutamise operatsiooni. Muutuja core.fsyncMethod vĂ”imaldab valida vahemĂ€lu tĂŒhjendamise meetodi, nĂ€iteks vĂ”ib valida fsync, et rakendada samanimelist sĂŒsteemi kutset, vĂ”i mÀÀrata writeout-only, et rakendada viivitatud kirjutamist (pagecache writeback).
- Vulnerabiliteetide kaitseks, mis manipuleerivad teiste kasutajate .git kataloogide asendamisega jagatud osades, on tugevdatud hoidja valideerimist. NĂŒĂŒd on git kĂ€skude tĂ€itmine lubatud ainult oma â.gitâ kataloogides. Kui teie repository kuulub teisele kasutajale, kuvatakse vaikeviga. Selle oodatava kĂ€itumise saab vĂ€lja lĂŒlitada konfiguratsiooniga safe.directory.
- Git-objektide algse sisu kuvamiseks loodud kĂ€sku âgit cat-fileâ on lisatud valik ââbatch-commandâ, mis tĂ€iendab varem saadaval olnud kĂ€skude ââbatchâ ja ââbatch-checkâ vĂ”imalust kohandada vĂ€ljundit, nĂ€idates âcontents <objekt>â sisu kuvamiseks vĂ”i âinfo <objekt>â objekti teabe kuvamiseks. Lisaks toetatakse kĂ€sku âflushâ vĂ€ljundi puhverdamiseks.
- KĂ€sku «git ls-tree», mis on mĂ”eldud objektipuude sisu loetlemiseks, on lisatud valik «âoid-only» («âobject-only»), mis sarnaneb «âname-only»-le, kuid vĂ€ljastab ainult objektide tuvastajad, et hĂ”lbustada skriptide kaudu kutsumist. Samuti on rakendatud valik «âformat», mis vĂ”imaldab mÀÀrata oma vĂ€ljundvormingut, kombineerides teavet reĆŸiimi, tĂŒĂŒbi, nimetuse ja suuruse kohta.
- KÀsk «git bisect run» on rakendatud, et mÀÀrata skripti kÀivitatavus, ning antud juhul vÀljastatakse vead koodidega 126 vÔi 127 (varem, kui skripti ei saanud kÀivitada, mÀrgistati kÔik tÔlgendused probleemsete kÔrval).
- KĂ€sku «git fetch» on lisatud valik «ârefetch», et tĂ”mmata kĂ”iki objekte ilma teavitamata teist poolt sisu olemasolust, mis juba on kohalikus sĂŒsteemis. Selline kĂ€itumine vĂ”ib osutuda kasulikuks taastamisprotsessis pĂ€rast tĂ”rkeid, kui puudub kindlus kohalike andmete terviklikkuse osas.
- KĂ€skudesse âgit update-indexâ, âgit checkout-indexâ, âgit read-treeâ ja âgit cleanâ on lisatud osaliste indeksite (sparse index) tugi, mis vĂ”imaldab parandada jĂ”udlust ja sÀÀsta ruumi ladustamisruumis, kus toimub osaline kloonimine (sparse-checkout).
- KĂ€sku âgit clone âfilter=⊠ârecurse-submodulesâ on muutunud, nĂŒĂŒd viib see osalise kloonimise submoodulite jaoks (varem rakendati filtrit ainult pĂ”hisisule, submoodulid klooniti tĂ€ielikult ja filtrit ei arvestatud).
- KĂ€sku âgit bundleâ on lisatud tugi filtrite mÀÀramiseks sisu valikulise paigutamise jaoks, sarnaselt osaliste kloonimise operatsioonidele.
- KĂ€sku âgit branchâ on tĂ€iustatud valikuga âârecurse-submodulesâ submoodulite rekursiivseks lĂ€bimiseks.
- Userdiff'is on ette pandud uus töötleja Kotlin'i keele jaoks.
Allikas: opennet.ru


