Lëshimi i sistemit të menaxhimit të kodit burimor të shpërndarë Git 2.24

I disponueshëm lëshimi i sistemit të distribuar të menaxhimit të kodit burimor Git 2.24.0. 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. Main innovations:

  • 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 — «git filter-repo», e cila është një alternativë më e lehtë për komandën «git filter-branch» 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 strategjinë e bashkimit;
  • Ë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 shtuan 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 «Contributor Covenant«, 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

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster