Lëshimi i sistemit të shpërndarë për menaxhimin e kodit burimor Git 2.25

I disponueshëm lëshimi i sistemit të distribuar të menaxhimit të kodit burimor Git 2.25.0. Git është një nga sistemet më të njohura, të besueshme dhe me performancë të lartë për menaxhimin e versioneve, që ofron mjete fleksibile për zhvillimin jolinear, të bazuara në degëzimin dhe bashkimin e degëve. Për të siguruar integritetin e historisë dhe qëndrueshmërinë ndaj ndryshimeve "mbrapa në kohë" përdoret hashingu implicit i gjithë historisë së mëparshme në çdo commit, gjithashtu është e mundur vërtetimi me nënshkrime digjitale të etiketave dhe komiteve të veçanta.

Në krahasim me lëshimin e kaluar, në versionin e ri janë pranuar 583 ndryshime, të përgatitura me pjesëmarrjen e 84 zhvilluesve, prej të cilëve 32 kanë marrë pjesë për herë të parë në zhvillim. Main innovations:

  • Po afron stabilizimi dhe gatishmĂ«ria e plotĂ« e funksionalitetit tĂ« klonimit tĂ« pjesshĂ«m (partial clones), qĂ« lejon transferimin e vetĂ«m njĂ« pjese tĂ« tĂ« dhĂ«nave dhe punimin me njĂ« kopje tĂ« pjesshme tĂ« depozitĂ«s. GjatĂ« klonimit tĂ« zakonshĂ«m nga depozita kopjohen tĂ« gjitha tĂ« dhĂ«nat, duke pĂ«rfshirĂ« çdo version tĂ« çdo skedari nga historia e ndryshimeve. PĂ«r depozita shumĂ« tĂ« mĂ«dha, kopjimi i tĂ« dhĂ«nave çon nĂ« njĂ« rritje tĂ« konsiderueshme tĂ« trafikimit dhe hapĂ«sirĂ«s nĂ« disk, madje edhe nĂ«se zhvilluesi Ă«shtĂ« i interesuar vetĂ«m pĂ«r njĂ« nĂ«ngrup tĂ« skedarĂ«ve. PĂ«r tĂ« thjeshtuar marrjen e vetĂ«m njĂ« pjese tĂ« pemĂ«s sĂ« punĂ«s me kodin burimor, nĂ« lĂ«shimin e ri Ă«shtĂ« propozuar njĂ« komandĂ« eksperimentale "sparse-checkout" dhe njĂ« opsion i ri "—sparse" pĂ«r komandĂ«n "clone".

    MĂ« parĂ«, procesi i klonimit tĂ« zgjedhur bĂ«hej pĂ«rmes caktimit filtrave pĂ«r tĂ« pĂ«rjashtuar pĂ«rmbajtjen e tepĂ«rt dhe opsionit "—no-checkout" pĂ«r tĂ« çaktivizuar mbushjen e skedarĂ«ve qĂ« mungojnĂ«. Pas kĂ«saj, para se tĂ« kryhej operacioni checkout, ishte e nevojshme tĂ« aktivizohej cilĂ«simi core.sparseCheckout dhe tĂ« pĂ«rcaktohej nĂ« skedarin .git/info/sparse-checkout lista e shablloneve tĂ« rrugĂ«ve pĂ«rjashtuese. PĂ«r shembull, pĂ«r tĂ« klonuar pa blob dhe pĂ«r tĂ« ndaluar nxjerrjen e skedarĂ«ve nga katalogĂ«t e brendshĂ«m me thellĂ«si 2 dhe mĂ« shumĂ«, mund tĂ« ishte ekzekutuar:

    git clone —filter=blob:none —no-checkout /your/repository/here repo
    $ cd repo
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git checkout .

    Komanda e re "git sparse-checkout" e thjeshtëson në masë të madhe punën dhe e redukton procesin e organizimit të punës me një depo të pjesshme në komandat:

    git clone —filter=blob:none —sparse /your/repository/here repo
    git sparse-checkout set /path/to/check/out

    Ekipi sparse-checkout mundëson vendosjen e një liste rrugësh për checkout (set) pa konfiguruar manualisht .git/info/sparse-checkout, si dhe shfaqjen e listës aktuale të rrugëve (list) dhe aktivizimin ose çaktivizimin e checkout-ve të pjesshëm (enable/disable).

    Për optimizimin e punës me depozitë shumë të mëdha dhe lista shabllonesh, është propozuar konfigurimi "git config core.sparseCheckoutCone" që kufizon modellet e lejuara (në vend të modeleve të rastësishme .gitignore, mund të përcaktohen të gjitha rrugët dhe të gjithë skedarët në një nënkatalog të caktuar që duhen nxjerrë). Për shembull, nëse në një depo të madhe ka një katalog "A/B/C" dhe gjithë puna është përqendruar në nënkatalogun "C", kur aktivizohet mënyra sparseCheckoutCone, komanda "git sparse-checkout set A/B/C" do të nxjerrë plotësisht përmbajtjen e "C", por nga "A" dhe "B" do të nxjerrë vetëm pjesët e nevojshme për punën me "C".

  • Nga dokumentacioni ("git rebase -h"), janĂ« hequr tĂ« gjitha pĂ«rmendjet e opsionit "—preserve-merges", i cili shpallet i vjetruar dhe nĂ« vend tĂ« tij, pĂ«r tĂ« transferuar njĂ« grup komitĂ«sh duhet tĂ« pĂ«rdoret "git rebase —rebase-merges«.
  • PĂ«r tĂ« pĂ«rmirĂ«suar lexueshmĂ«rinĂ« e mesazheve me patches, qĂ« dĂ«rgohen nĂ« listat e shpĂ«rndarjes, Ă«shtĂ« shtuar opsioni "git format-patch —cover-from-description subject", kur pĂ«rcaktohet i cili tema e letrĂ«s shoqĂ«ruese pĂ«r grupin e patches pĂ«rdor paragrafin e parĂ« nga teksti pĂ«rshkrues i degĂ«s.
  • ËshtĂ« zbatuar mbĂ«shtetje pĂ«r pĂ«rdorimin e pĂ«rbashkĂ«t tĂ« komandĂ«s "git apply —3way" dhe konfigurimit "merge.conflictStyle" ("git apply" tani merr parasysh stilin e pĂ«rshkrimit tĂ« konfliktit nga merge.conflictStyle kur Ă«shtĂ« e nevojshme tĂ« zgjidhet konflikti pas njĂ« pĂ«rpjekje pĂ«r tĂ« aplikuar njĂ« skedar me patch nĂ« depo.
  • Kodi qĂ« pĂ«rcakton funksionet, i pĂ«rdorur nĂ« operacione si "git diff/grep —show-function/—function-context", Ă«shtĂ« zgjeruar me mbĂ«shtetje pĂ«r pĂ«rcaktimin e kufijve tĂ« funksioneve nĂ« programe nĂ« gjuhĂ«n Elixir.
  • NĂ« "git add", "git commit", "git reset" dhe komandat e tjera Ă«shtĂ« shtuar njĂ« opsion i ri "—pathspec-from-file", i cili jep mundĂ«sinĂ« pĂ«r tĂ« ngarkuar njĂ« listĂ« rrugĂ«sh nga njĂ« skedar ose nga njĂ« burim, nĂ« vend qĂ« t'i listoni ato nĂ« komandĂ«n e linjĂ«s.
  • ËshtĂ« zgjidhur njĂ« problem me pĂ«rcaktimin e rinovimeve nĂ« nivel katalogu gjatĂ« regjistrimit tĂ« komitĂ«ve. PĂ«rcaktimi nuk punonte nĂ« rastin e zhvendosjes sĂ« pĂ«rmbajtjes sĂ« njĂ« nĂ«nkatalogu nĂ« rrĂ«njĂ«n e depozitĂ«s.
  • ËshtĂ« propozuar njĂ« implementim fillestar i rinovuar komandĂ«s "git add -i", i cili lejon shtimin e pĂ«rmbajtjes sĂ« ndryshuar nĂ« mĂ«nyrĂ« interaktive, i ri-shkruar nga Perl nĂ« C. NjĂ« rinovim i ngjashĂ«m i komandĂ«s "git add -p" Ă«shtĂ« nĂ« proces.
  • Eshte realizuar refaktorizimi i komandĂ«s «git log —graph», e cila formon njĂ« imazh ASCII tĂ« grafit me historinĂ« e ndryshimeve nĂ« depo. Rikonstruimi ka lejuar pĂ«rmirĂ«simin dhe thjeshtĂ«simin e daljes pa deformuar strukturĂ«n e historisĂ«, çka, pĂ«r shembull, zgjidh njĂ« problem me daljen e pamjes jashtĂ« gjerĂ«sisĂ« sĂ« rreshtit tĂ« terminalit.
  • Opsioni «git log —format=..», i cili lejon ndryshimin e formatit tĂ« daljes,
    është zgjeruar me mbështetje për flagjet «l/L» për të shkruar vetëm një pjesë të adresës së emailit, që tregon para simbolit «@» (për shembull, është e dobishme kur të gjithë zhvilluesit kanë të gjitha emailat në një domain të vetëm).
  • NĂ« komandĂ«n «git submodule» Ă«shtĂ« shtuar nĂ«nkomanda «set-url».
  • Grupet testuese janĂ« pĂ«rditĂ«suar nĂ« kuadĂ«r tĂ« pĂ«rgatitjes pĂ«r kalimin nĂ«
    algoritmin e hash SHA-2 në vend të SHA-1.

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