Lëshimi i sistemit të menaxhimit të kodeve të shpërndara Git 2.24

I verfĂŒshĂ«m lĂ«shimi i sistemit tĂ« shpĂ«rndarĂ« 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, duke ofruar mjete fleksibile pĂ«r zhvillim jo-linear, tĂ« bazuara nĂ« degĂ«zimin dhe bashkimin e degĂ«ve. PĂ«r tĂ« siguruar integritetin e historisĂ« dhe qĂ«ndrueshmĂ«rinĂ« ndaj ndryshimeve 'pĂ«r pas', pĂ«rdoret hash-i i implicit i gjithĂ« historisĂ« sĂ« mĂ«parshme nĂ« çdo commit, siç Ă«shtĂ« e mundur edhe verifikimi me firma digjitale tĂ« zhvilluesve tĂ« etiketimeve dhe commit-eve tĂ« veçanta.

Në krahasim me versionin e kaluar, versioni i ri përmban 544 ndryshime, të përgatitura me ndihmën e 78 zhvilluesve, nga të cilët 21 morën pjesë për herë të parë në zhvillim. Ndryshimet kryesore risitë:

  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r makro konfigurimi, pĂ«rmes tĂ« cilave mund tĂ« kaloni shpejt midis grupeve tĂ« ndryshme tĂ« cilĂ«simeve, pa u shqetĂ«suar pĂ«r detajet e opsioneve tĂ« lidhura me to. Me anĂ« tĂ« makrove, nuk ka nevojĂ« tĂ« mbani mend se cilat cilĂ«sime duhet tĂ« ndryshoni pĂ«r tĂ« aktivizuar funksionalitete tĂ« caktuara. PĂ«r shembull, nĂ« rast tĂ« ngadalĂ«simit tĂ« punĂ«s me njĂ« depo tĂ« madhe, mund tĂ« nevojitet kalimi nĂ« njĂ« mekanizĂ«m tĂ« ri indeksimi, aktivizimi i kompresimit tĂ« prefikseve dhe aktivizimi i caches pĂ«r skedarĂ«t e pambikĂ«qyrur, duke vendosur parametrin index.version nĂ« vlerĂ«n 4 dhe aktivizuar core.untrackedCache. Makrot ofrojnĂ« mundĂ«sinĂ« pĂ«r tĂ« kursyer kohĂ« duke aktivizuar cilĂ«simet me optimizime pĂ«r depo me numĂ«r tĂ« madh skedarĂ«sh tĂ« menjĂ«hershĂ«m.

    git config feature.manyFiles true

  • ËshtĂ« aktivizuar ruajtja e objekteve nĂ« formĂ«n e grafit tĂ« komiteteve (commit-graph) si standard, ku pĂ«r indekson pĂ«rdoret njĂ« strukturĂ« grafike nĂ« vend tĂ« njĂ« liste lineare hash-e me linke nĂ« objekte tĂ« tjera. NĂ«se mĂ« parĂ« pĂ«r tĂ« pĂ«rcaktuar lĂ«shimet qĂ« pĂ«rmbanin njĂ« korrigjim tĂ« caktuar, ishte e nevojshme tĂ« shkarkoheshin çdo objekt nga disku pĂ«r tĂ« gjetur linket, tani me ruajtjen nĂ« formĂ« grafi, lidhjet e nevojshme mund tĂ« pĂ«rcaktohen menjĂ«herĂ«. Kalimi nĂ« ruajtjen nĂ« formĂ« grafi tĂ« komiteteve nĂ« depo tĂ« bĂ«rthamĂ«s Linux dhe Git ka arritur njĂ« rritje gati dyfish tĂ« performancĂ«s nĂ« operacionet me degĂ«. PĂ«r tĂ« aktivizuar metodĂ«n e re tĂ« ruajtjes pas pĂ«rditĂ«simit nĂ« Git 2.24, duhet tĂ« ekzekutoni komandĂ«n "git gc."

    Nga ndryshimet që lidhen me commit-graph, gjithashtu shënohet unifikimi në formën e realizimit të treguesve të përparimit të operacionit në komandat që lidhen me commit-graph ("git commit-graph write", "git commit-graph verify" etj.). Treguesi i përparimit tani shfaqet standardisht vetëm për terminalin (për të ndryshuar këtë sjellje, përdorni opsionin "-[no-]progress"). Për më tepër, është shtuar një parameter i ri konfiguroi fetch.writeCommitGraph, i cili aktivizon përditësimin automatik të skedës me grafikun e komiteteve gjatë operacioneve "git fetch" (të gjitha komitetet që nxirren nga depo të jashtme do të përshtaten menjëherë në commit-graph pa nevojën e ekzekutimit të veçantë të auto-gc);

  • ËshtĂ« shtuar njĂ« komandĂ« pĂ«r rishkrimin e historisĂ« sĂ« ndryshimeve — "git filter-repo", e cila Ă«shtĂ« njĂ« alternativĂ« mĂ« e thjeshtĂ« pĂ«r komandĂ«n "git filter-branch" pĂ«r kryerjen e operacioneve mbi historinĂ« e ndryshimeve nĂ« depo (pĂ«r shembull, eliminimin e njĂ« skedari nga depoja ose nxjerrjen e historisĂ« sĂ« ndryshimeve tĂ« njĂ« katalogu tĂ« caktuar). PĂ«r tĂ« rritur efikasitetin, nĂ« vend tĂ« analizĂ«s sĂ« ndarĂ« nĂ« komitete nĂ« "git filter-repo", operacionet kryhen mbi pamjen e historisĂ« nĂ« formĂ« tĂ« njĂ« rrjedhe tĂ« vazhdueshme.

    Filtrimi i historisĂ« kryhet pĂ«rmes opsionit "-path-{glob,regex}", i cili lejon aplikimin e maskave tĂ« thjeshta si dhe shprehjeve tĂ« rregullta. Gjithashtu, ka opsione pĂ«r kryerjen e operacionit "kĂ«rkim dhe zĂ«vendĂ«sim" ose pastrimin e objekteve binarĂ«, pĂ«rmasat e tĂ« cilave kalojnĂ« njĂ« vlerĂ« tĂ« caktuar. Çdo komitet i rishkruar furnizohet me njĂ« identifikues tĂ« ri hash SHA-1 dhe sipas identifikuesit tĂ« ri pĂ«rditĂ«sohen tĂ« gjitha lidhjet nĂ« komitetin e zĂ«vendĂ«suar.

    Për të dhënë një përmbledhje me statistikë mbi depo (numri i objekteve sipas llojeve, skedarët dhe katalogët më të mëdhenj, cilat zgjerime kërkojnë më shumë hapësirë në disk etj.), ekziston një opsion "-analyze". Për të zgjeruar funksionalitetin, është e mundur të lidhen callback përpunues arbitrar në gjuhën Python, përmes të cilave mund të krijoni komandat e reja, si dhe të përpunoni ngjarje të ndryshme (për shembull, lloje të reja skedarësh);

  • ËshtĂ« shtuar opsioni "—end-of-options", i cili 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Ă« ekzaminohen si "git log ‘refs\/heads\/—super-dangerous-option'", nĂ« skript mund tĂ« hasen probleme me pĂ«rcaktimin e hapĂ«sirĂ«s sĂ« emrit. NdarĂ«si i zakonshĂ«m "—" nĂ« kĂ«tĂ« rast nuk aplikohet, pasi pĂ«rdoret pĂ«r ndarjen e emrave tĂ« lidhjeve nga skedarĂ«t (pĂ«r shembull, "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 pĂ«rzierjes;
  • ËshtĂ« shtuar njĂ« pĂ«rpunues i ri " .git/hooks/pre-merge-commit", i cili thirret pas pĂ«rfundimit tĂ« pĂ«rzierjes, por para shkruarjes sĂ« komitetit pĂ«rfundimtar;
  • NĂ« motorin e automatikisht plotĂ«simit tĂ« komandave Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r plotĂ«simin e variablave tĂ« konfigurimit nĂ« lidhje me cilĂ«simet e komandave tĂ« caktuara.
    Për shembull, nëse është e nevojshme të shkruhet "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 u shtua kodeksin e sjelljes së pjesëmarrësit në projekt, i cili përcakton parimet thelbësore të zgjidhjes së situatave konfliktuale. Dokumenti bazohet në rekomandimet "Contributor Covenant", të aplikuara në shumë projekte të hapura, duke përfshirë bërthamën e Linux, Eclipse, Freedesktop, GitLab, Ruby dhe Kubernetes. Dokumenti përcakton mundësi të barabarta për të gjithë pjesëmarrësit, pavarësisht nga besimi i tyre, mosha, gjinia, preferencat fetare, niveli i arsimimit, statusi social dhe kombësia. Në komunitet, mirëpritet një formë miqësore komunikimi, kuptohet dhe ndijohen problemet e pjesëmarrësve të tjerë, pranohet kritika ndihmuese, dhe merret vendime që janë më të mira për të gjithë komunitetin. Nuk lejohen trollimi, mënyra ofensive e komunikimit, përpjekjet për të poshtëruar, ngacmimi, shkeljet e privatësisë, zbardhja e të dhënave personale, si dhe veprime të tjera që mund të konsiderohen të papërshtatshme në komunikimin profesional.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster