Esitletakse hajutatud allika tekstihaldussĂŒsteemi Git 2.38. Git on ĂŒks populaarsemaid, usaldusvÀÀrsemaid ja suure jĂ”udlusega versioonihalduse sĂŒsteeme, mis pakub paindlikke mittelineaarse arenduse vahendeid, mis pĂ”hinevad harude ja nende ĂŒhendamise meetoditel. Ajaloo terviklikkuse ja muutuste jaoks "tagasiulatuvalt" vastupidavuse tagamiseks kasutatakse igas commit'is kogu varasema ajaloo varjatud hash'imist, samuti on vĂ”imalik kinnitada arendajate digitaalsete allkirjadega ĂŒksikute sildide ja commit'ide usaldusvÀÀrsust.
Uues versioonis on vÔrreldes eelmise vÀljaandega vastu vÔetud 699 muudatust, mille kallal töötas 92 arendajat, kellest 24 osales arenduses esmakordselt. Peamised uuendused:
- PÔhikoosseisu on lisatud utiliit "scalar", mille on vÀlja töötanud Microsoft suurte hoidlate haldamiseks. Utiliit kirjutati algselt C# keeles, kuid git'i on lisatud muudetud versioon C keeles. Uus utiliit erineb git'i kÀskudest, kuna see sisaldab vaikimisi tÀiendavaid funktsioone ja seadistusi, mis mÔjutavad jÔudlust vÀga suurte hoidlate kasutamisel. NÀiteks scalari kasutamisel rakendatakse:
- Osalist kloonimist töötamiseks mittetÀieliku hoidla koopiaga.
- Sisseehitatud failisĂŒsteemi muutuste jĂ€lgimise mehhanism (FSMonitor), mis vĂ”imaldab sÀÀsta kogu töökausta lĂ€biotsimisest.
- Indeksid, mis katab objekte erinevates paketifailides (multi-pack).
- Commit-graafifailid graafi indeksi abil, mis on mÔeldud commit'ide teabe juurdepÀÀsu optimeerimiseks.
- Taustal toimivad perioodilised tööd, et hoida hoidla struktuuri optimaalsena taustal, blokeerimata interaktiivset seanssi (korra tunnis toimub eeltÀitmise töö, et laadida vÀrskeid objekte kaughoidlast ja vÀrskendada commit-graafi faili, ning igal ööl kÀivitatakse hoidla pakkimise protsess).
- ReĆŸiim "sparseCheckoutCone", mis piirab lubatud mustreid osalise kloonimise korral.
- KĂ€sku "git rebase" on lisatud valik "âupdate-refs" sĂ”ltuvate harude vĂ€rskendamiseks, mis ristuvad liigutatavate harudega, et vĂ€ltida kĂ€sitsi iga sĂ”ltuva haru checkout'i teostamist nĂ”utud commit'ile ĂŒleminekuks.
- KĂ€sk «git rm» on nĂŒĂŒd ĂŒhilduv osalike indeksitega.
- KĂ€sk «git mv A B» kĂ€itumine on paranenud, kui faili liigutatakse tööalast alast, kus kasutatakse osalikke indekseid, vĂ€lisse alasse, kus see reĆŸiim ei kehti.
- Bitmap-failide formaat on optimeeritud suurte repode jaoks â lisatud on valikuline indeksitabel valitud commit'ide ja nende offset'ide loetlemiseks.
- KĂ€sk «git merge-tree» on saanud uue reĆŸiimi, kus kahe mÀÀratud commit'i pĂ”hjal arvutatakse sulandumise puu, kui see oleks nagu nende commit'ide ajaloode sulandumine.
- Lisatud seadistus «safe.barerepository» bare-reposiitide (reposiidid, mis ei sisalda tööpuud) haldamiseks teistes git-reposiitides. Kui seada vÀÀrtuseks «explicit», lubatakse töötamine ainult bare-reposiitidega, mis asuvad peadirijas. Bare-reposiitide paiknemiseks alamkataloogides tuleb kasutada vÀÀrtust «all».
- KĂ€sku «git grep» on lisatud valik «-m» (»âmax-count«), mis sarnaneb sama nimetusega valikule GNU grep'is ja vĂ”imaldab piirata vĂ€ljundi vasteid.
- KĂ€sk «ls-files» on saanud valiku «âformat» vĂ€ljundvĂ€ljade kohandamiseks (nĂ€iteks saab lisada objekti nime, reĆŸiime jne).
- KÀsk «git cat-file» vÔimaldab nÀidata objektide sisu, arvestades autori e-kirjade sidumisi, mis on mÀÀratud failis mailmap.
Allikas: opennet.ru
