Shpërndarja e sistemit të menaxhimit të burimeve Git 2.22

Të paraqitura lëshimi i sistemit të shpërndarë të menaxhimit të kodit burimor Git 2.22.0. 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ë bazuar në degëzim dhe bashkim të degëve. Për të siguruar integritetin e historisë dhe qëndrueshmërinë kundrejt ndryshimeve retrospektivisht, përdoret hashim i fshehtë i gjithë historisë së mëparshme në çdo commit, gjithashtu është e mundur të besosh digjitalisht nënshkrimet e zhvilluesve për etiketat dhe commit-et e veçanta.

Krahasuar me versionin e kaluar, versioni i ri përfshin 745 ndryshime, të përgatitura me pjesëmarrjen e 74 zhvilluesve, prej të cilëve 18 morën pjesë për herë të parë në zhvillim. Ndryshimet kryesore risitë:

  • Deri nĂ« versionin 1.18, njĂ« mĂ«nyrĂ« e re transferimi e grupit tĂ« komiteteve "git rebase --rebase-merges" zĂ«vendĂ«soi opsionin e vjetĂ«r "--preserve-merges", i cili tani Ă«shtĂ« shĂ«nuar si i vjetruar. Operacioni "git rebase" aplikohet 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Ă« veçantĂ« nĂ« tĂ« cilĂ«n zhvillohet ndonjĂ« funksionalitet i ri, nĂ« gjendjen aktuale tĂ« degĂ«s master, e cila pĂ«rfshin korrigjime tĂ« shtuara 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ës në degën e transferueshme, më parë mund të aplikohej opsioni "--preserve-merges", i cili gjatë ekzekutimit në mënyrë interaktive (git rebase -i --preserve-merges) lejonte redaktimin e historisë së komiteteve, por nuk garantonte ruajtjen e plotë të strukturës së repositories. Mënyra "--rebase-merges" që ka ardhur në vend të saj lejon ruajtjen e strukturës së ndryshimeve në degën e transferueshme, duke ofruar një gamë të plotë operacionesh interaktive, duke përfshirë fshirjen, ri-grupimin dhe rinamingun e komiteteve.

    Për shembull, "--rebase-merges" lejon rilidhni angazhimet nga një degë të veçantë në një degë më të re master, duke ruajtur kështu strukturën e degëzimit në degën e kalueshme dhe duke bërë disa ndryshime në shënimet e angazhimeve në lëvizje.

  • 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, lidhje me paraardhĂ«sin e pĂ«rbashkĂ«t) duke pĂ«rdorur struktura «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 angazhimeve tĂ« specifikuara, nĂ« pĂ«rputhje me atĂ« si «git checkout A
B» lĂ«viz HEAD nĂ« angazhimin bazĂ« dhe «diff A
B» tregon ndryshimet midis angazhimit «B» dhe paraardhĂ«sit tĂ« pĂ«rbashkĂ«t me angazhimin «A».

    PĂ«r shembull, kur punoni me njĂ« degĂ« tĂ« veçantĂ« my-feature, mund tĂ« pĂ«rdorni mundĂ«sinĂ« e propozuar kur nevojitet tĂ« filloni nga njĂ« degĂ« tjetĂ«r, pĂ«r shembull, nga e njĂ«jta pikĂ« nĂ« degĂ«n master, nga e cila u nxor degĂ«n my-feature. MĂ« parĂ«, pĂ«r kĂ«tĂ« duhej tĂ« shqyrtonit manualisht logun e ndryshimeve, gjĂ« qĂ« krijonte pengesĂ« nĂ« prani tĂ« njĂ« historie tĂ« madhe ndryshimesh, dhe pastaj tĂ« kryenit «git merge-base master my-feature» pĂ«r tĂ« llogaritur hash-in e bazĂ«s sĂ« bashkimit mes degĂ«ve master dhe my-feature dhe tĂ« krijonit njĂ« degĂ« tĂ« 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 bashkimit tĂ« dy degĂ«ve tĂ« tjera, mund tĂ« pĂ«rdorni sintaksĂ«n «git branch my-other-feature A
B»;

  • Shtuar opsioni «git branch —show-current» pĂ«r tĂ« treguar emrin e degĂ«s, i cili merret kur kryhet operacioni checkout;
  • Shtuar opsioni «git checkout —no-overlay — dir», qĂ« lejon qĂ« gjatĂ« kryerjes sĂ« operacionit checkout tĂ« sjellĂ« pĂ«rmbajtjen e dosjes dir nĂ« njĂ« dukje qĂ« pĂ«rputhet plotĂ«sisht me gjendjen e degĂ«s master. PĂ«r shembull, nĂ«se nĂ« kopjen lokale tĂ« dosjes dir ka njĂ« skedar qĂ« nuk Ă«shtĂ« i pranishĂ«m nĂ« degĂ«n master, ai do tĂ« lihet, pĂ«r default, gjatĂ« kryerjes sĂ« «git checkout master — dir», dhe kur jepet opsioni «—no-overlay», ai do tĂ« fshihet;
  • NĂ« komandĂ«n «git diff» Ă«shtĂ« angazhuar njĂ« API universale pĂ«r analizimin e opsioneve, qĂ« ka lejuar unifikimin e pĂ«rpunimit tĂ« opsioneve me utilitetet e tjera git. PĂ«r shembull, nĂ« «git diff» tani tĂ« gjitha opsionet janĂ« nĂ« dispozicion dhe antagonistet e tyre («—function-context» dhe «—no-function-context»);
  • E shtuar mundĂ«sia e filtrimit gjatĂ« daljes sĂ« «git log» pĂ«r etiketat e zgjeruara tĂ« lidhura me commit-et («trailer» — flamuj informues shtesĂ«, si Signed-off-by dhe Co-authored-by). Filtrimi i etiketave Ă«shtĂ« i mundur si sipas çelĂ«sit, ashtu edhe sipas vlerĂ«s, pĂ«r shembull:
    «git log —pretty=»%(trailers:key=Reviewed-by,valueonly)»;
  • E shtuar njĂ« mekanizĂ«m tĂ« ri gjurmimi Trace2, duke ofruar njĂ« format mĂ« fleksibĂ«l dhe tĂ« strukturuar pĂ«r daljen. Trace2 lejon mbledhjen e telemetrisĂ« pĂ«r veprimet nĂ« zhvillim dhe tĂ« dhĂ«nat mbi performancĂ«n pĂ«r njĂ« analizĂ« dhe debuggim mĂ« tĂ« detajuar (menaxheri caktohet nga pĂ«rdoruesi, asnjĂ« tĂ« dhĂ«nĂ« nuk dĂ«rgohet jashtĂ«);
  • Raporti «git bisect» Ă«shtĂ« bĂ«rĂ« mĂ« i lexueshĂ«m, ku tani gjithashtu dallohet mĂ« qartĂ« commit-et problematike dhe jepet njĂ« statistikĂ« e pĂ«rmbledhur mbi ndryshimet pĂ«r çdo skedar (nĂ« nivelin e numrit tĂ« linjave tĂ« ndryshuara);
  • Eshkolimi i heuristikĂ«s pĂ«r pĂ«rcaktimin e rinovimeve tĂ« katalogĂ«ve Ă«shtĂ« ripunuar me qĂ«llim pĂ«r tĂ« eliminuar vendosjen e gabuar tĂ« etiketave tĂ« rinovimit. NĂ« rast dyshimesh, kĂ«to katalogĂ« tani do tĂ« etiketohen si tĂ« konfliktueshĂ«m;
  • ËshtĂ« siguruar njĂ« paralajmĂ«rim gjatĂ« pĂ«rpjekjes pĂ«r tĂ« vendosur njĂ« etiketĂ« mbi njĂ« etiketĂ« tjetĂ«r, e cila, zakonisht, bĂ«het gabimisht dhe mund tĂ« çojĂ« nĂ« vendosjen e etiketĂ«s nĂ« komitin e gabuar (pĂ«r shembull, konstrukti si «git tag -f -m «mesazhi i pĂ«rditĂ«suar» my-tag1 my-tag2» do tĂ« çojĂ« nĂ« krijimin e njĂ« etikete mbi etiketĂ«n e vjetĂ«r, ndĂ«rsa zhvilluesi priste qĂ« etiketĂ« e re tĂ« vendoset nĂ« komitin qĂ« tregon etiketa e vjetĂ«r);
  • ËshtĂ« aktivizuar gjenerimi pĂ«r depozitat e hartave bitore (struktura diskore «reachability bitmaps»), qĂ« ruajnĂ« tĂ« dhĂ«na mbi grupet e objekteve tĂ« disponueshme pĂ«r çdo komit, dhe lejojnĂ« tĂ« pĂ«rcaktohet shpejt prania e objektit bazĂ«. Kjo strukturĂ« redukton ndjeshĂ«m kohĂ«n e ekzekutimit tĂ« operacioneve tĂ« tĂ«rheqjes sĂ« tĂ« dhĂ«nave (git fetch).

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