Lëshimi i sistemit të menaxhimit të kodit burimor Git 2.37

ËshtĂ« paraqitur lĂ«shimi i sistemit tĂ« menaxhimit tĂ« burimeve tĂ« kodit Git 2.37. Git Ă«shtĂ« njĂ« nga sistemet mĂ« tĂ« njohura, tĂ« besueshme dhe me performancĂ« tĂ« lartĂ« pĂ«r menaxhimin e versioneve, duke ofruar mjete fleksibĂ«l pĂ«r zhvillimin jo-linear, tĂ« bazuara nĂ« degzim dhe bashkim tĂ« degĂ«ve. PĂ«r tĂ« siguruar integritetin e histori dhe qĂ«ndrueshmĂ«rinĂ« ndaj ndryshimeve "me pas", pĂ«rdoret hashingu implicit i gjithĂ« historisĂ« sĂ« mĂ«parshme nĂ« çdo commit, ndĂ«rsa Ă«shtĂ« e mundur tĂ« vĂ«rtetohen me nĂ«nshkrime digjitale tĂ« zhvilluesve tĂ« etiketimeve dhe commit-eve tĂ« veçanta.

Krahasuar me versionin e kaluar, në versionin e ri janë miratuar 395 ndryshime, të përgatitura me pjesëmarrjen e 75 zhvilluesve, nga të cilët 20 janë angazhuar për herë të parë në zhvillim. Risitë kryesore:

  • Mekanizmi i indekseve tĂ« pjesshme (sparse index) Ă«shtĂ« pĂ«rgatitur pĂ«r pĂ«rdorim tĂ« gjerĂ«, duke mbuluar vetĂ«m njĂ« pjesĂ« tĂ« repositories. Indekset e pjesshme lejojnĂ« pĂ«rmirĂ«simin e performancĂ«s dhe kursimin e hapĂ«sirĂ«s nĂ« repositories ku kryhen operacione tĂ« klonimit tĂ« pjesshĂ«m (sparse-checkout) ose punĂ« bĂ«het me njĂ« kopje tĂ« paplotĂ« tĂ« repositories. NĂ« kĂ«tĂ« lĂ«shim, pĂ«rfundimi i punĂ«s pĂ«r integrimin e indekseve tĂ« pjesshme nĂ« komandat "git show", "git sparse-checkout" dhe "git stash" Ă«shtĂ« realizuar. Fitimi mĂ« i dukshĂ«m nĂ« performancĂ« nga pĂ«rdorimi i indekseve tĂ« pjesshme vĂ«rehet nĂ« komandĂ«n "git stash", shpejtĂ«sia e ekzekutimit tĂ« sĂ« cilĂ«s nĂ« disa situata Ă«shtĂ« rritur me deri nĂ« 80%.
  • NjĂ« mekanizĂ«m i ri "cruft packs" Ă«shtĂ« realizuar pĂ«r paketimin e objekteve tĂ« paarritshme (unreachable), pĂ«r tĂ« cilat nĂ« repository nuk ka referenca (nuk i referohen degĂ«t apo etiketat). Objektet e paarritshme hiqen nga shĂ«rbimi i mbetjeve, por derisa tĂ« hiqen, ato qĂ«ndrojnĂ« pĂ«r njĂ« kohĂ« tĂ« caktuar nĂ« repository pĂ«r tĂ« pĂ«rjashtuar situatat e garĂ«s. PĂ«r tĂ« ndjekur periudhĂ«n e qĂ«ndrimit tĂ« objekteve tĂ« paarritshme, nevojitet lidhja e etiketave me kohĂ«n e modifikimit tĂ« kĂ«tyre objekteve, gjĂ« qĂ« nuk lejon ruajtjen e tyre nĂ« njĂ« pack-file, ku tĂ« gjitha objektet kanĂ« njĂ« kohĂ« tĂ« pĂ«rbashkĂ«t modifikimi. Ruajtja e çdo objekti nĂ« njĂ« skedar tĂ« veçantĂ« mĂ« parĂ« rezultoi nĂ« probleme kur kishte njĂ« numĂ«r tĂ« madh objektesh tĂ« freskĂ«ta tĂ« paarritshme, tĂ« cilat ende nuk e plotĂ«sonin kushtin pĂ«r tĂ« qenĂ« tĂ« fshin. Mekanizmi i propozuar "cruft packs" lejon ruajtjen e tĂ« gjitha objekteve tĂ« paarritshme nĂ« njĂ« pack-file, ndĂ«rsa tĂ« dhĂ«nat pĂ«r kohĂ«n e modifikimit tĂ« çdo objekti pasqyrohen nĂ« njĂ« tabelĂ« tĂ« veçantĂ«, e ruajtur nĂ« njĂ« skedar me zgjatjen ".mtimes".
  • PĂ«r Windows dhe macOS, Ă«shtĂ« realizuar njĂ« mekanizĂ«m tĂ« integruar pĂ«r ndjekjen e ndryshimeve nĂ« sistemin e skedarĂ«ve, duke e bĂ«rĂ« tĂ« mundur shmangien e skanimit tĂ« tĂ« gjithĂ« katalogut tĂ« punĂ«s gjatĂ« kryerjes sĂ« operacioneve si "git status". MĂ« parĂ«, pĂ«r ndjekjen e ndryshimeve pĂ«rmes hook-Ă«ve mund tĂ« lidhen mjete tĂ« jashtme pĂ«r ndjekjen e ndryshimeve nĂ« FS, si Watchman, por kjo kĂ«rkonte instalimin e programeve shtesĂ« dhe konfigurimin. Tani funksionaliteti i pĂ«rmendur Ă«shtĂ« i integruar dhe mund tĂ« aktivizohet me komandĂ«n "git config core.fsmonitor true".
  • NĂ« komandĂ«n "git sparse-checkout", Ă«shtĂ« shpallur e degraduar mbĂ«shtetje pĂ«r modin alternativ "—cone" tĂ« metodĂ«s sĂ« pĂ«rcaktimit tĂ« modeleve pĂ«r klonimin e pjesshĂ«m, i cili lejon qĂ« gjatĂ« pĂ«rcaktimit tĂ« pjesĂ«s sĂ« depozitĂ«s qĂ« rregullohet pĂ«r operacionin e klonimit tĂ« listohen skedarĂ«t e veçantĂ« duke pĂ«rdorur sintaksĂ«n " .gitignore", e cila nuk lejon pĂ«rdorimin e indekseve tĂ« pjesshme pĂ«r optimizim.
  • ËshtĂ« rritur fleksibiliteti i konfigurimit tĂ« thirrjes fsync() pĂ«r tĂ« shlyer ndryshimet nĂ« disk. NĂ« parametrin "core.fsyncMethod" Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r strategjinĂ« e sinkronizimit "batch", e cila lehtĂ«son punĂ«n gjatĂ« shkruarjes sĂ« njĂ« numri tĂ« madh skedarĂ«sh tĂ« veçantĂ« duke akumuluar ndryshimet nĂ« memorien pĂ«rmbysĂ«s, e cila shlyhet me njĂ« thirrje tĂ« vetme fsync(). Testi i kryer, ku me komandĂ«n "git add" u shtuan 500 skedarĂ«, u krye pĂ«r 0.15 sekonda me aktivizimin e modit tĂ« ri, ndĂ«rsa me thirrjen fsync() pĂ«r secilin skedar nevojitej 1.88 sekonda, dhe pa pĂ«rdorimin e fsync – 0.06 sekonda.
  • NĂ« komandat pĂ«r kalimin e degĂ«ve, si "git log" dhe "git rev-list", Ă«shtĂ« shtuar opsioni "—since-as-filter=X", i cili lejon filtrimin e informacionit mbi komitĂ«t, koha e krijimit tĂ« cilĂ«ve Ă«shtĂ« mĂ« e vjetĂ«r se "X". Ndryshe nga opsioni "—since", komanda e re Ă«shtĂ« realizuar si njĂ« filtrues, pa ndaluar kalimin pas komitit tĂ« parĂ«, mĂ« tĂ« vjetĂ«r se koha e caktuar.
  • NĂ« komandĂ«n "git remote" me caktimin e flamurit "-v" Ă«shtĂ« siguruar shfaqja e informacionit mbi klonimet e pjesshme tĂ« depozitĂ«s.
  • ËshtĂ« shtuar konfigurrimi "transfer.credentialsInUrl", i cili mund tĂ« pranojĂ« vlerat "warn", "die" dhe "allow". NĂ« rastin e caktimit nĂ« parametrin "remote..url" tĂ« kredencialeve nĂ« tekst tĂ« hapur, pĂ«rpjekja pĂ«r tĂ« kryer operacione "fetch" ose "push" do tĂ« pĂ«rfundojĂ« me njĂ« gabim, nĂ«se konfigurrimi "transfer.credentialsInUrl" merr vlerĂ«n "die", ose me njĂ« paralajmĂ«rim, nĂ«se Ă«shtĂ« caktuar vlera "warn".
  • Mezi standardet, Ă«shtĂ« aktivizuar njĂ« implementim i ri i modit interaktiv tĂ« komandĂ«s «git add -i», e shkruar nga Perl nĂ« C.

Burimi: opennet.ru

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