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
