jaotatud lĂ€htekoodi haldamise sĂŒsteemi 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 ĂŒhenduste haldamisel. Ajaloo terviklikkuse ja tagajĂ€rgede muutuste eest kaitsmiseks kasutatakse kogu eelneva ajaloo automaatset hashimist igas commit'is, vĂ”imaldades ka arendajatelt allkirjastatud digitaalset sammsisenemist ja commit'ide tagamisstrateegiaid.
Uuendatud versioonis on tehtud 544 muudatust, mille on valmistanud 78 arendajat, kellest 21 osalesid arenduses esmakordselt. :
- Lisatud on konfiguratsioonimakrode tugi, mille kaudu saab kiiresti vahetada erinevate seadistuste vahel, sĂŒvenemata nendega seotud spetsiifiliste valikute detailidesse. Makrode abil pole vaja meeles pidada, milliseid seadistusi tuleb muuta, et aktiveerida teatud funktsionaalsus. NĂ€iteks, kui suure hoidla töötlemine aeglustub, vĂ”ib osutuda vajalikuks vahetada uue indekseerimise mehhanismi, lubada tee eesliidete kompressioon ja aktiveerida jĂ€lgimata failide vahemaa, seadistades parameetri index.version vÀÀrtuseks 4 ja aktiveerides core.untrackedCache. Makrod vĂ”imaldavad kulutada vĂ€hem aega vajaliku lahenduse leidmiseks dokumentatsioonis ja kohe aktiveerida seadistused, mis optimeerivad suure failiarvuga hoidlaid:
git config feature.manyFiles true
- Kohandatud objekti salvestamine kommit-graafiku (commit-graph) kujul, kus indekseerimiseks kasutatakse mitte lineaarset objekti hashidega seondunud loendit, vaid graafikonstruktsiooni. Kui varem tuli kindlaks teha, millistes vĂ€ljalaskeversioonides teatud parandused asuvad, laadides iga objekti kettalt alla, siis graafi salvestamise korral saab kohe mÀÀrata kĂ”ik vajalikud seosed. Kommit-graafiku kasutuselevĂ”tt Linuxi ja Git tuumade hoidlates on peaaegu kahekordistanud harude töötlemise efektiivsust. Uue salvestusmeetodi aktiveerimiseks pĂ€rast Git 2.24 uuendamist tuleb kĂ€ivitada kĂ€sk âgit gcâ.
Kommit-graafikuga seotud muudatustest tuleb mĂ€rkida ka selle kohandamist teiste komandodega sarnase progressi indikaatori rakendamisega seoses kommit-graafiku kĂ€skudega (nt âgit commit-graph writeâ, âgit commit-graph verifyâ jne). Progressi indikaator kuvatakse nĂŒĂŒd vaikimisi ainult terminalis (kĂ€itumise muutmiseks tuleks kasutada valikut â-[no-]progressâ). Lisaks on loodud uus konfiguratsiooniparameter fetch.writeCommitGraph, mis vĂ”imaldab automaatset kommit-graafikufaili vĂ€rskendamist âgit fetchâ toimingute kĂ€igus (kĂ”ik vĂ€lisprojekte allalaaditud kommid jĂ”uavad kohe kommit-graafikusse ilma eraldi auto-gc kĂ€ivitamata);
- Lisatud on kĂ€sk muudatuste ajaloo ĂŒmberkirjutamiseks â ââ, mis on lihtsam alternatiiv kĂ€sule ââ muudatuste ajaloo töötlemiseks (nt faili eemaldamine hoidlast vĂ”i teatud katalooge ajaloo vĂ€ljavĂ”tmine). TĂ”hususe suurendamiseks teostatakse âgit filter-repoâ operatsioonid mitte jĂ€rjekorras kommitite kaupa, vaid pideva voolu ajaloo kuvamise alusel.
Ajaloo filtreerimine toimub valiku â-path-{glob,regex}â abil, mis vĂ”imaldab rakendada nii lihtsaid mustreid kui ka regulaaravaldisi. Samuti on valikud âotsingu ja asendamiseâ vĂ”i binaarfailide puhastamise teostamiseks, mille suurus ĂŒletab antud piiri. Iga ĂŒmberkirjutatud kommit varustatakse uue SHA-1 hash-idendifikaatoriga, ja kĂ”ik viidatud lingid eemaldatud kommitile vĂ€rskendatakse vastavalt uuele id-le.
Hoidla statistika kokkuvĂ”tte kuvamiseks (objektide arv tĂŒĂŒpide kaupa, suurimad failid ja kataloogid, mis laiendused vĂ”tavad rohkem ruumi kettal jne) on ette nĂ€htud valik â-analyzeâ. Funktsionaalsuse laiendamise vĂ”imalus sisaldab kasutaja mÀÀratletud callback-kĂ€sitlejate lisamist Pythonis, mille kaudu saab luua uusi alamkomande ja töötle erinevaid sĂŒndmusi (nt uued failitĂŒĂŒbid);
- Lisatud on valik ââend-of-optionsâ, mis eraldab valikud viidatud nimedest, mis vĂ”ivad alata sĂŒmbolitest â-â ja neid kĂ€sitleda kui valikuid (âgit log âend-of-options âsuper-dangerous-optionâ). Kuigi tavaliselt saab selliseid nimesid lihtsalt teha âgit log ârefs/heads/âsuper-dangerous-option'â, vĂ”ib skriptides esineda ruumide mÀÀratlemise probleeme. Ăldiselt tunnustatud lahutaja âââ ei ole sellest pĂ”hjustel rakendatav, kuna seda kasutatakse ka linkide ja failide nimede eraldamiseks (nt âgit log âend-of-options âsuper-dangerous-option ^master â path/to/fileâ);
- KĂ€sku âgit rebase ârebase-mergesâ on lisatud valikud ââstrategyâ ja ââstrategy-optionâ sulandamisstrateegia valimiseks. ;
- Lisatud uus töötleja â.git/hooks/pre-merge-commitâ, mis kĂ€ivitub pĂ€rast ĂŒhinemist, kuid enne tulemuskohustuse salvestamist.
- AutotÀienduse mootori jaoks on lisatud tugi konfiguratsioonimuutujate tÀiendamiseks, mis on seotud konkreetsete kÀskude seadetega.
NÀiteks kui on vaja sisestada «git -c core.autocrlf=false add path/to/my/file», aga tÀpset muutuja nime «core.autocrlf» ei mÀletata, siis saab vajutada Tab-klahvi ja saada nÀpunÀite.
Lisaks sellele Git arendajad projekti osaleja kĂ€itumiskoodeks, mis mÀÀratleb pĂ”hialused konfliktide lahendamiseks. Dokument pĂ”hineb soovitustel ««, mida rakendatakse paljudes avatud projektides, sealhulgas Linuxi tuumas, Eclipse'is, Freedesktop'is, GitLab'is, Ruby's ja Kubernetes'es. Dokument mÀÀratleb kĂ”igile osalejatele vĂ”rdsed vĂ”imalused, sĂ”ltumata nende maailmavaatest, vanusest, soost, usulisest kuuluvusest, haridustasemest, sotsiaalsest staatusest ja rahvusest. Ăhenduses tervitatakse sĂ”bralikku suhtlemisviisi, mĂ”istmist ja teiste osalejate probleemide kaastunnet, konstruktiivse kriitika vastuvĂ”tmist ning parimate lahenduste vastuvĂ”tmist kogu kogukonna hĂŒvanguks. Trollimine, solvangute kasutamine, alandamine, ahistamine, isikuandmete rikkumine ja muud tegevused, mis vĂ”ivad pidada sobimatuks ametlikus suhtluses, ei ole lubatud.
Allikas: opennet.ru
