lëshimi i sistemit të distribuar të menaxhimit të kodit burimor . Git është një nga sistemet më të njohura, të besueshme dhe me performancë të lartë për menaxhimin e versioneve, që ofron mjete fleksibile për zhvillimin jolinear, të bazuara në degëzimin dhe bashkimin e degëve. Për të siguruar integritetin e historisë dhe qëndrueshmërinë ndaj ndryshimeve "mbrapa në kohë" përdoret hashingu implicit i gjithë historisë së mëparshme në çdo commit, gjithashtu është e mundur vërtetimi me nënshkrime digjitale të etiketave dhe komiteve të veçanta.
Në krahasim me lëshimin e kaluar, në versionin e ri janë pranuar 544 ndryshime, të përgatitura me pjesëmarrjen e 78 zhvilluesve, nga të cilët 21 morën pjesë për herë të parë në zhvillim. :
- Shtuar mbështetje për makrosistema konfigurimi, përmes të cilave mund të kaloni shpejt midis grupeve të ndryshme të cilësimeve, pa u thelluar në detajet e opsioneve specifike që lidhen me to. Me ndihmën e makrosistemave, nuk ka nevojë të mbani mend se cilat cilësime duhet të ndryshoni për të aktivizuar funksionalitete të caktuara. Për shembull, në rastin e ngadalësimit të punës me një depo të madhe, mund të jetë e nevojshme të kaloni në mekanizmin e ri të indeksimit, të aktivizoni kompresimin e prefikseve të rrugëve dhe të angazhoni cache të skedave të pa ndjekura, duke vendosur parametrin index.version në vlerën 4 dhe duke aktivizuar core.untrackedCache. Makrosistemat lejojnë që mos të humbni kohë në kërkimin e zgjidhjeve të nevojshme në dokumentacion, por të aktivizoni menjëherë cilësimet me optimizime për depo të shumta skedash:
git config feature.manyFiles true
- E vendosur si parazgjedhje ruajtja e objekteve në formën e grafit të komiteteve (commit-graph), ku indeksohet jo me një listë lineare të hash-eve të objekteve me lidhje në objekte të tjera, por me një strukturë grafike. Nëse më parë për të përcaktuar lëshimet që përmbajnë një korrigjim të caktuar, kërkohej ngarkimi i çdo objekti nga disku për të kërkuar lidhjet, tani me ruajtjen në formën e grafit mund të përcaktohen menjëherë të gjitha lidhjet e nevojshme. Kalimi në ruajtjen në formën e grafit të komiteteve në depo të kernelit Linux dhe Git ka arritur gati dyfishimin e performacës së operacioneve me degë. Për të aktivizuar metodën e re të ruajtjes pas përmirësimit në Git 2.24, duhet të kryeni komandën «git gc».
Nga ndryshimet e lidhura me commit-graph, gjithashtu shënohet standardizimi i mënyrës së implementimit të treguesit të përparimit të ekzekutimit të operacioneve në komandat e lidhura me commit-graph («git commit-graph write», «git commit-graph verify» etj.). Treguesi i përparimit tani dhënë si parazgjedhje shfaqet vetëm për terminalin (për të ndryshuar sjelljen duhet të përdoret opsioni «-[no-]progress»). Për më tepër, është shtuar një parametr i ri konfigurimi fetch.writeCommitGraph, i cili përfshin përditësimin automatike të skedarit me grafikonin e kommit-eve gjatë operacioneve «git fetch» (të gjitha kommit-et e nxjerra nga repozitoritë e jashtme do të kalojnë menjëherë në commit-graph pa nevojën për të ekzekutuar veçmas auto-gc);
- Komanda për të riparuar historinë e ndryshimeve është shtuar — «», e cila është një alternativë më e lehtë për komandën «» për të kryer operacione me historinë e ndryshimeve në repozitorin (p.sh., fshirja e një skedari nga repozitori ose nxjerrja e historisë së ndryshimeve të një katalogu të caktuar). Për të rritur efikasitetin, në vend të analizës së renditur të kommit-eve në «git filter-repo», operacionet kryhen mbi pamjen e historisë në formën e një fluksi të vazhdueshëm.
Filtrimi i historisë bëhet me anë të opsionit «-path-{glob,regex}», që lejon aplikimin e maskave të thjeshta si dhe shprehjeve të rregullta. Po ashtu, ka opsione për të kryer operacionin «kërko dhe zëvendëso» ose pastrimin e objekteve binarë që tejkalojnë një madhësi të caktuar. Çdo kommit i riparuar është i pajisur me një identifikues të ri hash SHA-1 dhe në përputhje me identifikuesin e ri, të gjitha lidhjet e kommit të zëvendësuar përditësohen.
Për të dhënë një përmbledhje me statistika mbi repozitorin (numri i objekteve sipas llojeve, skedarët dhe katalogët më të mëdhenj, cilat shkronja kërkojnë më shumë hapësirë në disk etj.) është parashikuar një opsion «-analyze». Për të zgjeruar funksionalitetin, ekziston mundësia e lidhjes së callback-handlerve të rastësishëm në gjuhën Python, përmes të cilëve mund të krijohen komandë të reja, si dhe të trajtohen ngjarje të ndryshme (p.sh., lloje të reja skedarësh);
- Është shtuar opsioni «—end-of-options», që lejon ndarjen e opsioneve nga emrat e lidhjeve, të cilat mund të fillojnë me simbolin «-» dhe të perceptohen si opsione («git log —end-of-options —super-dangerous-option»). Nëse në praktikë emrat e tillë mund të ekranohet si «git log ‘refs/heads/—super-dangerous-option'», atëherë në skriptet mund të kenë ndodhur probleme me përcaktimin e hapësirës emërore. Ndërruesi i zakonshëm » — » për këtë rast nuk është i aplicueshëm, pasi është tashmë në përdorim për ndarjen e emrave të lidhjeve nga skedarët (p.sh., «git log —end-of-options —super-dangerous-option ^master — path/to/file»);
- Në «git rebase —rebase-merges» janë shtuar opsionet «—strategy» dhe «—strategy-option» për të zgjedhur ;
- Është shtuar një trajtues i ri «.git/hooks/pre-merge-commit», i cili thirret pas përfundimit të bashkimit, por para regjistrimit të komitit përfundimtar;
- Në motorin e autokompletimit të komandave është shtuar mbështetje për kompletimin e variablave të konfigurimit në lidhje me cilësimet e komandave specifike.
Për shembull, nëse këni nevojë të shkruani «git -c core.autocrlf=false add path/to/my/file», por nuk e mbani mend emrin e saktë të variablës «core.autocrlf», mund të shtypni Tab dhe të merrni një sugjerim.
Përveç kësaj, zhvilluesit e Git kodin e sjelljes së pjesëmarrësve në projekt, i cili përcakton parimet thelbësore për zgjidhjen e situatave konfliktuale. Dokumenti bazohet në rekomandimet e ««, të aplikuara në shumë projekte të hapura, duke përfshirë bërthamën Linux, Eclipse, Freedesktop, GitLab, Ruby dhe Kubernetes. Dokumenti përcakton mundësi të barabarta për të gjithë pjesëmarrësit, pavarësisht nga ideologjia e tyre, mosha, gjinia, preferencat fetare, niveli i arsimimit, statusi social dhe kombësia. Në komunitet inkurajohet një formë komunikimi miqësore, kuptimi dhe empatia për problemet e pjesëmarrësve të tjerë, përthithja e kritikave ndihmuese dhe miratimi i zgjidhjeve më të mira për të gjithë komunitetin. Nuk lejohet trolimi, komunikimi ofendues, përpjekjet për nënçmim, ngacmimi, shkelja e privatësisë, zbulimi i informacionit personal, si dhe veprime të tjera që mund të konsiderohen të papërshtatshme gjatë komunikimit profesional.
Burimi: opennet.ru
