Dalja e sistemit të shpërndarë të menaxhimit të kodit burimor Git 2.22

Presented lëshimi i sistemit të distribuar të menaxhimit të kodit burimor Git 2.22.0. Git është një nga sistemet më të njohura, të besueshme dhe me performancë të lartë të menaxhimit të versioneve, duke ofruar mjete fleksibël për zhvillimin jo-lineare, që bazohen në degëzim dhe bashkim të degëve. Për të siguruar integritetin e historisë dhe qëndrueshmërinë ndaj ndryshimeve pas ngjarjeve, përdoret hashing i heshtur i gjithë historisë së mëparshme në çdo commit, si dhe është e mundur të vërtetohen nënshkrimet digjitale të zhvilluesve për etiketat dhe commit-et specifike.

Në krahasim me versionin e kaluar, në këtë version janë pranuar 745 ndryshime, përgatitur me pjesëmarrjen e 74 zhvilluesve, prej të cilëve 18 morën pjesë për herë të parë në zhvillim. Main innovations:

  • NjĂ« funksion i ri i disponueshĂ«m qĂ« nga versioni 1.18 Ă«shtĂ« mĂ«nyra e ri-ndĂ«rlidhjes sĂ« grumbullit tĂ« komiteteve «git rebase —rebase-merges», e cila ka zĂ«vendĂ«suar opsionin e vjetĂ«r «—preserve-merges», i cili tani Ă«shtĂ« shĂ«nuar si tĂ« vjetruar. Operacioni «git rebase» pĂ«rdoret pĂ«r tĂ« zĂ«vendĂ«suar njĂ« seri komitetesh me njĂ« komitet tĂ« ri bazĂ«, pĂ«r shembull, pĂ«r tĂ« lĂ«vizur njĂ« degĂ« tĂ« caktuar, nĂ« tĂ« cilĂ«n zhvillohet njĂ« veçori e re, nĂ« gjendjen aktuale tĂ« deges master, e cila pĂ«rmban pĂ«rmirĂ«sime tĂ« shtuar pas ndarjes:

    o — o — o (my-feature)

    /

    o — o — o — o — o (master)

    o — o — o (my-feature)

    /

    o — o — o — o — o (master)

    PĂ«r tĂ« ruajtur strukturĂ«n e degĂ«ve nĂ« degĂ«n e ri-ndĂ«rlidhur, mĂ« parĂ« mund tĂ« pĂ«rdorej opsioni «—preserve-merges», i cili, kur ekzekutohej nĂ« modalitetin interaktiv (git rebase -i —preserve-merges), lejonte redaktimin e historisĂ« sĂ« komiteteve, por nuk garantonte ruajtjen e plotĂ« tĂ« strukturĂ«s sĂ« repositorios. MĂ«nyra e re «—rebase-merges» lejon ruajtjen e strukturĂ«s sĂ« ndryshimeve nĂ« degĂ«n e ri-ndĂ«rlidhur, duke ofruar njĂ« grup tĂ« plotĂ« operacionesh interaktive, pĂ«rfshirĂ« fshirjen, rigrupimin dhe rinimin e komiteteve.

    PĂ«r shembull, «—rebase-merges» mundĂ«son ndihmon pĂ«r tĂ« ri-ngarkuar komitetet nga njĂ« degĂ« tĂ« veçantĂ« nĂ« njĂ« degĂ« master mĂ« tĂ« re, duke ruajtur strukturĂ«n e degĂ«ve nĂ« degĂ«n e ri-ndĂ«rlidhur dhe duke bĂ«rĂ« disa ndryshime nĂ« shĂ«nimet e komiteteve gjatĂ« procesit.

  • Shtuar mbĂ«shtetje pĂ«r krijimin e njĂ« dege tĂ« re mbi bazĂ«n e pĂ«rcaktimit tĂ« bazĂ«s sĂ« bashkimit tĂ« dy degĂ«ve tĂ« tjera (merge base, pĂ«rcaktimi me njĂ« paraardhĂ«s tĂ« pĂ«rbashkĂ«t) duke pĂ«rdorur sintaksat «git branch new A
B» dhe «git checkout -b new A
B», ku «A
B» nĂ«nkupton pĂ«rcaktimin e bazĂ«s sĂ« bashkimit midis dy komiteteve tĂ« specifikuara, nĂ« pĂ«rputhje me atĂ« se si «git checkout A
B» lĂ«viz HEAD nĂ« komitetin bazĂ« dhe «diff A
B» tregon ndryshimet midis komitetit «B» dhe paraardhĂ«sit tĂ« pĂ«rbashkĂ«t me komitetin «A».

    PĂ«r shembull, gjatĂ« punĂ«s mbi njĂ« degĂ« my-feature, funksionaliteti i propozuar mund tĂ« pĂ«rdoret kur Ă«shtĂ« e nevojshme tĂ« fillohet nga njĂ« degĂ« tjetĂ«r, pĂ«r shembull, nga e njĂ«jta pikĂ« nĂ« degĂ«n master, nga e cila Ă«shtĂ« nxjerrĂ« dega my-feature. MĂ« parĂ«, pĂ«r kĂ«tĂ« duhej tĂ« shqyrtohej manualisht logu i ndryshimeve, gjĂ« qĂ« krijonte shqetĂ«sime kur kishte njĂ« histori tĂ« madhe ndryshimesh, mĂ« pas tĂ« ekzekutohej «git merge-base master my-feature» pĂ«r tĂ« llogaritur hash-in bazĂ« tĂ« pĂ«rzierjes midis degĂ«ve master dhe my-feature dhe tĂ« krijohej njĂ« degĂ« e re nĂ« raport me paraardhĂ«sin e pĂ«rbashkĂ«t «git branch my-other-feature hash». NĂ« Git 2.22, pĂ«r tĂ« krijuar njĂ« degĂ« nĂ« raport me bazĂ«n e pĂ«rzierjes sĂ« dy degĂ«ve tĂ« tjera, mund tĂ« pĂ«rdoret sintaksa «git branch my-other-feature A
B»;

  • Shtohet opsioni «git branch —show-current» pĂ«r tĂ« shfaqur emrin e degĂ«s qĂ« Ă«shtĂ« marrĂ« gjatĂ« operacionit checkout;
  • Shtohet opsioni «git checkout —no-overlay — dir», i cili lejon qĂ« gjatĂ« operacionit checkout tĂ« sjellĂ« pĂ«rmbajtjen e katalogut dir nĂ« njĂ« gjendje qĂ« i pĂ«rkon plotĂ«sisht gjendjes sĂ« degĂ«s master. PĂ«r shembull, nĂ«se nĂ« kopjen lokale tĂ« katalogut dir ka njĂ« skedar qĂ« mungon nĂ« degĂ«n master, ai do tĂ« lihet nĂ« pĂ«rputhje me rregullat gjatĂ« ekzekutimit tĂ« «git checkout master — dir», dhe me shenjĂ«n «—no-overlay» do tĂ« hiqet;
  • NĂ« komandĂ«n «git diff» Ă«shtĂ« aktivizuar njĂ« API universale pĂ«r analizimin e opsioneve, duke lejuar unifikimin e trajtimit tĂ« opsioneve me utilitetet e tjera tĂ« git. PĂ«r shembull, nĂ« «git diff» tani tĂ« gjitha opsionet kanĂ« akses edhe tek antagonistĂ«t e tyre («—function-context» dhe «—no-function-context»);
  • Shtohet mundĂ«sia e filtrimit gjatĂ« daljes «git log» tĂ« etiketimeve tĂ« zgjeruara tĂ« bashkangjitura me komitetet («trailer» — flamuj informues shtesĂ«, siç Ă«shtĂ« Signed-off-by dhe Co-authored-by). Filtrimi i etiketimeve Ă«shtĂ« i mundur si sipas çelĂ«sit ashtu edhe sipas vlerĂ«s, pĂ«r shembull:
    «git log —pretty=»%(trailers:key=Reviewed-by,valueonly)»;
  • Shtohet njĂ« mekanizĂ«m i ri ndjekjeje Trace2, qĂ« ofron njĂ« format mĂ« fleksibĂ«l dhe tĂ« strukturuar daljeje. Trace2 lejon mbledhjen e telemetrisĂ« mbi operacionet e kryera dhe tĂ« dhĂ«nat e performancĂ«s pĂ«r njĂ« analizĂ« dhe debug mĂ« tĂ« detajuar (gunxhimi caktohet nga pĂ«rdoruesi, asnjĂ« tĂ« dhĂ«nĂ« nuk dĂ«rgohet jashtĂ«);
  • Raporti «git bisect» Ă«shtĂ« bĂ«rĂ« mĂ« i lexueshĂ«m, nĂ« tĂ« cilin tani dallohet mĂ« qartĂ« komitet problematik dhe shfaqen statistika pĂ«rmbledhĂ«se mbi ndryshimet pĂ«r çdo skedar (nĂ« nivelin e numrit tĂ« rreshtave tĂ« ndryshuar);
  • Heuristika pĂ«r pĂ«rcaktimin e rinovimeve tĂ« katalogĂ«ve Ă«shtĂ« ripĂ«rdorur pĂ«r tĂ« eliminuar caktimin e rremĂ« tĂ« etiketave. NĂ« rast dyshimi, kĂ«to katalogĂ« tani shĂ«nohen si konfliktuese;
  • U sigurua njĂ« paralajmĂ«rim kur pĂ«rpiqet tĂ« vendosĂ« njĂ« etiketĂ« mbi njĂ« etiketĂ« tjetĂ«r, e cila zakonisht bĂ«het gabimisht dhe mund tĂ« çojĂ« nĂ« vendosjen e etiketĂ«s jo mbi commit-in e duhur (p.sh., konstrukti si «git tag -f -m «mesazh i pĂ«rditĂ«suar» my-tag1 my-tag2» do tĂ« krijojĂ« njĂ« etiketĂ« mbi etiketĂ«n e vjetĂ«r, ndĂ«rsa zhvilluesi priste qĂ« etiketa e re tĂ« vendosej mbi commit-in qĂ« tregon etiketĂ«n e vjetĂ«r);
  • U aktivizua gjenerimi pĂ«r repositorĂ«t e bitĂ«ve tĂ« hartĂ«s (struktura diskore «reachability bitmaps»), qĂ« ruajnĂ« tĂ« dhĂ«nat mbi sete objektesh, tĂ« disponueshme pĂ«r çdo commit, dhe lejojnĂ« pĂ«rcaktimin e shpejtĂ« tĂ« pranisĂ« sĂ« objektit bazĂ«. Kjo strukturĂ« ndjeshĂ«m redukton kohĂ«n e ekzekutimit tĂ« operacioneve tĂ« ekstraktimit tĂ« tĂ« dhĂ«nave (git fetch).

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