Publikimi i sistemit të shpërndarë për menaxhimin e kodit burimor Git 2.31

Versioni 2.31 e sistemit të shpërndarë të menaxhimit të kodit burimor Git është tani në dispozicion. Git është një nga sistemet më popullore, të besueshme dhe me performancë të lartë për menaxhimin e versioneve, duke ofruar mjete fleksibile për zhvillimin jo linear që janë të bazuara në degëzim dhe bashkim të degëve. Për të siguruar integritetin e historisë dhe qëndrushmërinë ndaj ndryshimeve "me prapavijë", përdoret hash-i implicit i gjithë historisë së mëparshme në çdo komitim, gjithashtu është e mundur të vërtetohet me nënshkrime digjitale nga zhvilluesit e etiketave dhe komitimeve të veçanta.

Në krahasim me versionin e kaluar, në këtë version janë pranuar 679 ndryshime, të përgatitura me pjesëmarrjen e 85 zhvilluesve, nga të cilët 23 morën pjesë për herë të parë. Novitetet kryesore janë:

  • ËshtĂ« shtuar komanda "git maintenance", e cila lejon kryerjen e punĂ«ve periodike nĂ« sisteme qĂ« nuk mbĂ«shtesin cron. PĂ«r shembull, me anĂ« tĂ« kĂ«saj komande tĂ« re, mund tĂ« organizohet njĂ« lançim periodik i procesit tĂ« paketimit tĂ« depozitĂ«s, nĂ« mĂ«nyrĂ« qĂ« tĂ« mos presim pĂ«rfundimin e bllokimit tĂ« depozites gjatĂ« kryerjes automatikisht tĂ« paketimit gjatĂ« ekzekutimit tĂ« komandeve tĂ« ndryshme. Komanda "git maintenance" lejon optimizimin dhe operacionet e mbajtjes sĂ« strukturĂ«s optimale tĂ« depozitĂ«s nĂ« sfond, pa bllokuar seancĂ«n interaktive — çdo orĂ« kryhet njĂ« punĂ« pĂ«r ngarkimin paraprak tĂ« objekteve tĂ« reja nga depozita e largĂ«t dhe pĂ«rmirĂ«simin e skedarit me grafikun e komitimeve, dhe çdo natĂ« fillohet procesi i paketimit tĂ« depozitĂ«s.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r mbajtjen nĂ« disk tĂ« indeksit tĂ« pĂ«rmbysur (revindex) pĂ«r skedarĂ«t pack. TĂ« kujtojmĂ« se Git ruan tĂ« gjitha tĂ« dhĂ«nat nĂ« formĂ«n e objekteve, tĂ« cilat vendosen nĂ« skedarĂ« tĂ« veçantĂ«. PĂ«r tĂ« rritur efikasitetin e punĂ«s me depozitĂ«n, objekteve u jepet gjithashtu pĂ«rmbajtja nĂ« skedarĂ« pack, nĂ« tĂ« cilat informacioni paraqitet nĂ« formĂ«n e njĂ« rrjedhjeje tĂ« objekteve qĂ« ndjekin njĂ«ra-tjetrĂ«n (njĂ« format i ngjashĂ«m pĂ«rdoret gjatĂ« transferimit tĂ« objekteve me komandat git fetch dhe git push). PĂ«r çdo skedar pack krijohet njĂ« skedari indekse (.idx), qĂ« lejon qĂ« me identifikuesin e objektit tĂ« pĂ«rcaktohet shumĂ« shpejt offseti nĂ« skedarin pack, ku ruhet ky objekt. Indeksi i pĂ«rmbysur (.rev) i propozuar nĂ« Git 2.31 ka pĂ«r qĂ«llim optimizimin e procesit tĂ« pĂ«rcaktimit tĂ« identifikuesit tĂ« objektit pĂ«rmes informacionit mbi vendosjen e objektit nĂ« skedarin pack.

    Më parë, kjo transformim kryhej në kohë reale gjatë analizës së skedarit pack dhe ruhej vetëm në memorie, e cila nuk lejonte ripërdorimin e tillë të indekseve dhe detyronte gjenerimin e indekseve çdo herë. Operacioni i ndërtimit të indeksit përkthehet në ndërtimin e një vargu nga çiftet "objekt-pjesë" dhe renditjen e tij sipas pjesës, që mund të marrë shumë kohë për skedarë të mëdhenj pack.

    Për shembull, operacioni i daljes së përmbajtjes së objekteve, ku përdoret indeksi i drejtpërdrejtë, u krye 62 herë më shpejt se operacioni i shfaqjes së madhësisë së objekteve, për të cilat të dhënat për lidhjen e pjesës me objektin nuk ishin indeksuar. Pas përdorimit të indeksit të kundërt, këto operacione filluan të kërkojnë një kohë të ngjashme. Indeksat e kundërt gjithashtu lejojnë të përshpejtojnë operacionet e dërgimit të objekteve gjatë ekzekutimit të komandave fetch dhe push përmes transmetimit të drejtpërdrejtë të të dhënave të gatshme nga disku. Në mënyrë të paracaktuar, indeksat e kundërt nuk krijohen, për gjenerimin e tyre kërkohet që të aktivizohet cilësimi "git config pack.writeReverseIndex true" me përcjelljen e paketimit të depozitës me komandën "git repack -Ad".

  • JanĂ« shtuar optimizime tĂ« performancĂ«s, tĂ« bazuara nĂ« shfaqjen e formatit tĂ« skedarit commit-graph, i cili pĂ«rdoret pĂ«r optimizimin e qasjes nĂ« informacionin mbi komitetet, tĂ« dhĂ«nave tĂ« reja pĂ«r numrin e gjeneratĂ«s sĂ« komitetit, tĂ« cilat mund tĂ« pĂ«rdoren pĂ«r tĂ« pĂ«rshpejtuar operacione tĂ« tjera me komitetet.
  • JanĂ« pĂ«rmirĂ«suar mundĂ«sitĂ« pĂ«r tĂ« tejkaluar emrin e degĂ«s kryesore, e cila pĂ«rdoret si parazgjedhje nĂ« depozitat e reja (cilĂ«simi init.defaultBranch). Kur aksesoni depozita tĂ« jashtme, git pĂ«rpiqet tĂ« nxjerrĂ« degĂ«n nĂ« tĂ« cilĂ«n tregon HEAD, dmth. nĂ«se e jashtmja server pĂ«rdor degĂ«n "main" si parazgjedhje, atĂ«herĂ« operacioni "git clone" do tĂ« pĂ«rpiqet tĂ« nxjerrĂ« "main" lokalish. NĂ« Git 2.31, mbĂ«shtetje pĂ«r nxjerrjen e tillĂ« tani Ă«shtĂ« realizuar edhe pĂ«r depozita tĂ« bosh. PĂ«r shembull, gjatĂ« klonimit lokal tĂ« njĂ« depozitĂ« tĂ« re para se tĂ« shtoni patches tĂ« parĂ« nĂ« tĂ«, kopja lokale tani do tĂ« pĂ«rmbajĂ« emrin e jashtĂ«m server tĂ« degĂ«s kryesore si parazgjedhje.
  • KomandĂ«s "git rev-list" i Ă«shtĂ« shtuar opsioni "—disk-usage", i cili lejon tĂ« shfaqen tĂ« dhĂ«nat pĂ«rmbledhĂ«se mbi madhĂ«sinĂ« e objekteve.
  • Duke pritur pĂ«r ndĂ«rrimin e ardhshĂ«m tĂ« backend-it pĂ«r realizimin e bashkimeve, Ă«shtĂ« optimizuar ndjeshĂ«m pĂ«rcaktimi i rinovimeve.
  • MbĂ«shtetje pĂ«r bibliotekĂ«n e vjetruar tĂ« shprehjeve tĂ« rregullta PCRE1 Ă«shtĂ« ndĂ«rprerĂ«.
  • Ofrimi i mundĂ«sisĂ« pĂ«r ndalimin e detyrueshĂ«m tĂ« pĂ«rdorimit tĂ« lidhjeve tĂ« shkurtra, qĂ« vepron pavarĂ«sisht nga algoritmi i hash-it. Ndalimi aktivizohet duke i caktuar vlerĂ«n "no" parametrin core.abbrev.
  • Opsioni "—path-format=(absolute|relative)" Ă«shtĂ« shtuar nĂ« komandĂ«n "git rev-parse" pĂ«r tĂ« pĂ«rcaktuar qartĂ« daljen e rrugĂ«ve relative ose absolute.
  • NĂ« skriptet pĂ«r autokcomplete nĂ« Bash, Ă«shtĂ« lehtĂ«suar shtimi i rregullave tĂ« plotĂ«simit pĂ«r komandat e veta "git".
  • Opsioni "—stdin" Ă«shtĂ« shtuar nĂ« komandĂ«n "git bundle" pĂ«r tĂ« lexuar lidhjet nga kanali standard i hyrjes.
  • NjĂ« opsion i ri "—diff-merges=" Ă«shtĂ« shtuar nĂ« komandĂ«n "git log".
  • Opsioni "—deduplicatecan" Ă«shtĂ« shtuar nĂ« komandĂ«n "git ls-files" pĂ«r tĂ« eliminuar dublikatet gjatĂ« daljes.
  • Maska tĂ« reja pĂ«r pĂ«rjashtimin e intervaleve tĂ« commit-Ă«ve janĂ« shtuar — "^!" dhe "^-".
  • Opsionet "—left-only" dhe "—right-only" janĂ« shtuar nĂ« komandĂ«n "git range-diff" pĂ«r tĂ« treguar vetĂ«m njĂ« anĂ« tĂ« intervalit tĂ« krahasimit.
  • Opsionet "—skip-to=" dhe "—rotate-to=" janĂ« shtuar nĂ« komandat "git diff" dhe "git log" pĂ«r tĂ« anashkaluar ose lĂ«vizur nĂ« fund tĂ« rrugĂ«ve fillestare.
  • Opsioni "—skip-to=" Ă«shtĂ« shtuar nĂ« komandĂ«n "git difftool" pĂ«r tĂ« rifilluar seancĂ«n e ndĂ«rprerĂ« nga njĂ« rrugĂ« tĂ« caktuar.
  • Kodexi i sjelljes (Code-of-conduct), qĂ« pĂ«rcakton parimet kryesore tĂ« zgjidhjes sĂ« situatave konfliktuale mes zhvilluesve, Ă«shtĂ« azhurnuar nĂ« versionin 2.0 (mĂ« parĂ« Ă«shtĂ« pĂ«rdorur versioni 1.4).

    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