Sistemi i menaxhimit të kodit burimor Git 2.41 është në dispozitë

Pas tre muajsh zhvillimi, është publikuar versioni i sistemit të shpërndarë të menaxhimit të kodit burimor Git 2.41. 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ët dhe bashkimet. Për të garantuar integritetin e historisë dhe qëndrueshmërinë ndaj ndryshimeve 'retroaktive', përdoret një hash-im implicit i të gjithë historisë së mëparshme në çdo commit, dhe gjithashtu është e mundur të konfirmohet me nënshkrime digjitale të zhvilluesve për etiketat dhe commit-et e veçanta.

Në krahasim me versionin e kaluar, në versionin e ri janë pranuar 542 ndryshime, të përgatitura nga 95 zhvillues, nga të cilët 29 kanë marrë pjesë për herë të parë në zhvillim. Risitë kryesore janë:

  • PĂ«rmirĂ«simi i trajtimit tĂ« objekteve tĂ« papĂ«rballueshme (unreachable), pĂ«r tĂ« cilat nĂ« depo nuk ka referenca (nuk ka degĂ« ose etiketa qĂ« i referohen). Objektet e papĂ«rballueshme fshihen nga mbledhĂ«sit e plehrave, por pĂ«rpara se tĂ« fshihen, ato qĂ«ndrojnĂ« pĂ«r njĂ« kohĂ« tĂ« caktuar nĂ« depo pĂ«r tĂ« shmangur gjendjet garuese. PĂ«r tĂ« ndjekur periudhĂ«n e qĂ«ndrimit tĂ« objekteve tĂ« papĂ«rballueshme, Ă«shtĂ« e nevojshme tĂ« lidhen etiketat me kohĂ«n e ndryshimeve tĂ« kĂ«tyre objekteve, gjĂ« qĂ« nuk lejon ruajtjen e tyre nĂ« njĂ« skedĂ« pack, nĂ« tĂ« cilĂ«n tĂ« gjitha objektet kanĂ« njĂ« kohĂ« tĂ« pĂ«rgjithshme tĂ« ndryshimit. MĂ« parĂ«, çdo objekt i papĂ«rballueshĂ«m ruhej nĂ« njĂ« skedĂ« tĂ« veçantĂ«, gjĂ« qĂ« shkaktonte probleme kur kishte njĂ« numĂ«r tĂ« madh objektesh tĂ« papĂ«rballueshme tĂ« reja qĂ« ende nuk pĂ«rfshiheshin nĂ« fshirje. NĂ« versionin e ri, pĂ«r paketimin e objekteve tĂ« papĂ«rballueshme, mekanizmi 'cruft packs' Ă«shtĂ« aktivizuar si parazgjedhje, duke lejuar ruajtjen e tĂ« gjitha objekteve tĂ« papĂ«rballueshme nĂ« njĂ« skedĂ« pack, ndĂ«rsa tĂ« dhĂ«nat mbi kohĂ«n e modifikimit tĂ« secilit objekt pasqyrohen nĂ« njĂ« tabelĂ« tĂ« veçantĂ«, e ruajtur nĂ« njĂ« skedĂ« me pĂ«rfundim '.mtimes' dhe e lidhur me ndihmĂ«n e njĂ« skedari indeksi me pĂ«rfundim '.idx'.
    Sistemi i menaxhimit të kodit burimor Git 2.41 është në dispozitë
  • Pranimi si default qĂ« ndihma e indeksit tĂ« rikthimit (revindex) pĂ«r skedarĂ«t pack Ă«shtĂ« aktive. GjatĂ« testimeve nĂ« repositorin torvalds/linux, pĂ«rdorimi i indeksit tĂ« rikthimit lejoj qĂ« operacionet e kĂ«rkuar `git push` tĂ« shpejtohen 1.49 herĂ«, ndĂ«rsa operacionet e thjeshta, si llogaritja e madhĂ«sisĂ« sĂ« njĂ« objekti me ndihmĂ«n e ‘git cat-file —batch=’%(objectsize:disk)'’ u pĂ«rshpejtuan 77 herĂ«. SkedarĂ«t (‘.rev’) me indeksin e rikthimit do tĂ« ruhet brenda repositorit nĂ« dosjen ‘.git/objects/pack’.

    E rikujtojmë se Git ruan të dhënat e gjitha në formë objektesh, të cilat vendosen në skedare të veçanta. Për të rritur efikasitetin e punës me repositorin, objektet gjithashtu vendosen në skedarë pack, në të cilat informacioni paraqitet si një rrjedhë e objekteve që pasojnë njëra-tjetrën (formati i ngjashëm përdoret gjatë dërgimit të objekteve nga komandat git fetch dhe git push). Për çdo skedar pack krijohet një skedar indeksi (.idx), që lejon që shumë shpejt të përcaktohet pozita në skedarin pack, ku ruhet ky objekt, sipas identifikuesit të tij.

    Indeksi i rikthimit tĂ« pĂ«rfshirĂ« nĂ« versionin e ri Ă«shtĂ« orientuar nĂ« optimizimin e procesit tĂ« pĂ«rcaktimit tĂ« identifikuesit tĂ« objektit sipas informacionit pĂ«r vendosjen e objektit nĂ« skedarin pack. MĂ« parĂ«, ky transformim bĂ«hej nĂ« fluks gjatĂ« analizĂ«s sĂ« skedarit pack dhe ruheshin vetĂ«m nĂ« memorie, çka nuk lejonte qĂ« tĂ« pĂ«rdornin pĂ«rsĂ«ri indekse tĂ« tilla dhe detyronte se çdo herĂ« tĂ« gjeneronin indeksin. Operacioni i ndĂ«rtimit tĂ« indeksit konsiston nĂ« ndĂ«rtimin e njĂ« vargu nga çiftet ‘objekt-pozitë’ dhe renditjen e tij sipas pozitĂ«s, qĂ« mund tĂ« marrĂ« shumĂ« kohĂ« pĂ«r skedarĂ«t pack tĂ« mĂ«dhenj.

    Për shembull, operacioni i shfaqjes së përmbajtjes së objekteve, në të cilin përdoret indeksi i drejtpërdrejtë, u përshpejtua 62 herë më shpejt se operacioni i shfaqjes së madhësisë së objekteve, për të cilin të dhënat mbi lidhjen e pozitës me objektin nuk ishin indekse. Pas përdorimit të indeksit të rikthimit, operacionet e përmendura filluan të kishin një kohë afërsisht të njëjtë. Indeksat e rikthimit gjithashtu lejojnë të shpejtojnë operacionet e dërgimit të objekteve gjatë ekzekutimit të komandave fetch dhe push përmes dërgimit të drejtpërdrejtë të të dhënave tashmë të gatshme nga disku.

    Sistemi i menaxhimit të kodit burimor Git 2.41 është në dispozitë
  • NĂ« protokollin «credential helper», i pĂ«rdorur pĂ«r tĂ« transmetuar kredencialet kur lidhemi me depo qĂ« kanĂ« qasje tĂ« kufizuar, Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r transmetimin e titujve WWW-Authenticate midis menaxherit tĂ« kredencialeve dhe shĂ«rbimit, ku bĂ«het autentifikimi. MbĂ«shtetjeja pĂ«r titullin WWW-Authenticate lejon dĂ«rgimin e parametrave scope tĂ« OAuth pĂ«r njĂ« ndarje mĂ« granulare tĂ« aksesit tĂ« pĂ«rdoruesit nĂ« depo dhe ndarjen e zonave tĂ« aksesit pĂ«r kĂ«rkesat.
  • EkspeditĂ«s sĂ« for-each-ref i Ă«shtĂ« shtuar opsioni i formatimit «%(ahead-behind:<base>)», i cili lejon tĂ« merrni njĂ«herĂ«sh informacion mbi numrin e komiteteve qĂ« janĂ« tĂ« pranishme ose qĂ« mungojnĂ« nĂ« njĂ« degĂ« tĂ« caktuar, nĂ« lidhje me njĂ« degĂ« tjetĂ«r (sa shumĂ« njĂ« degĂ« Ă«shtĂ« prapa ose pĂ«rpara njĂ« tjetĂ«r nĂ« nivelin e komiteteve). MĂ« parĂ«, pĂ«r tĂ« marrĂ« njĂ« informacion tĂ« tillĂ« kĂ«rkohej tĂ« ekzekutohej dy komanda tĂ« ndara: «git rev-list —count main..my-feature» pĂ«r tĂ« marrĂ« numrin e komiteteve unike pĂ«r degĂ«n dhe «git rev-list —count my-feature..main» pĂ«r tĂ« marrĂ« numrin e komiteteve qĂ« mungojnĂ«. Tani kĂ«to llogaritje mund tĂ« reduktohen nĂ« njĂ« komandĂ«, qĂ« e thjeshtojnĂ« shkruan e menaxherĂ«ve dhe zvogĂ«lojnĂ« kohĂ«n e ekzekutimit. PĂ«r shembull, pĂ«r tĂ« shfaqur degĂ«t qĂ« nuk kanĂ« kaluar bashkimin dhe pĂ«r tĂ« vlerĂ«suar prapambetje ose pĂ«rparĂ«si pĂ«r degĂ«n kryesore, mund tĂ« pĂ«rdorni njĂ« komandĂ« tĂ« shkurtĂ«r: $ git for-each-ref —no-merged=origin/HEAD \ —format='%(refname:short) %(ahead-behind:origin/HEAD)' \ refs/heads/tb/ | column -t tb/cruft-extra-tips 2 96 tb/for-each-ref—exclude 16 96 tb/roaring-bitmaps 47 3 nĂ« vend tĂ« skenarit tĂ« mĂ«parshĂ«m, i cili ekzekutohej 17 herĂ« mĂ« ngadalĂ«: $ git for-each-ref —format='%(refname:short)' —no-merged=origin/HEAD \ refs/heads/tb | while read ref do ahead="$(git rev-list —count origin/HEAD..$ref)" behind="$(git rev-list —count $ref..origin/HEAD)" printf "%s %d %d\n" "${ref}" "${ahead}" "${behind}" done | column -t tb/cruft-extra-tips 2 96 tb/for-each-ref—exclude 16 96 tb/roaring-bitmaps 47 3
  • EkspeditĂ«s «git fetch» i Ă«shtĂ« shtuar opsioni «—porcelain», me tĂ« cilin formohet njĂ« dalje nĂ« formatin «<flag> <old-object-id> <new-object-id> <local-reference>», mĂ« pak i lexueshĂ«m, por mĂ« i pĂ«rshtatshĂ«m pĂ«r pĂ«rpunim nĂ« skenarĂ«.
  • NĂ« sistem Ă«shtĂ« shtuar cilĂ«simi «fetch.hideRefs», i cili lejon tĂ« pĂ«rshpejtohen operacionet «git fetch» duke fshehur njĂ« pjesĂ« tĂ« referencave nĂ« depo lokale gjatĂ« fazĂ«s sĂ« kontrollit pĂ«r dĂ«rgimin e setit tĂ« plotĂ« tĂ« objekteve nga serveri, gjĂ« qĂ« i lejon tĂ« kursejnĂ« kohĂ« duke kufizuar kontrollin vetĂ«m. serverĂ«sh, nga tĂ« cilat nxirren tĂ« dhĂ«na drejtpĂ«rdrejt. PĂ«r shembull, gjatĂ« testimit nĂ« njĂ« sistem me depo qĂ« pĂ«rmbajnĂ« njĂ« numĂ«r tĂ« madh lidhjesh tĂ« jashtme tĂ« ndjekura, pĂ«rjashtimi i tĂ« gjitha lidhjeve pĂ«rveç atyre tĂ« adresuara qĂ«llimit serverit $remote, lehtĂ«soi ekzekutimin e operacionit «git fetch» nga 20 minuta nĂ« 30 sekonda. $ git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs/remotes/$remote \ fetch $remote
  • NĂ« komandĂ«n «git fsck» Ă«shtĂ« implementuar mundĂ«sia e kontrollit tĂ« dĂ«mtimeve, pĂ«rputhjes sĂ« shumave kontrolluese dhe saktĂ«sisĂ« sĂ« vlerave nĂ« hartat bitore tĂ« mundĂ«sisĂ« dhe indekset e kundĂ«rta.
  • NĂ« komandĂ«n «git clone —local» Ă«shtĂ« implementuar shfaqja e njĂ« gabimi kur pĂ«rpiqet tĂ« kopjohet nga njĂ« depo qĂ« pĂ«rmban lidhje simbolike brenda $GIT_DIR.

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