Jaotatud allikakoodihalduse sĂŒsteemi Git 2.22 vĂ€ljaanne

Esitletud jaotatud tekstihalduse sĂŒsteemi vĂ€ljaanne Git 2.22.0. Git on ĂŒks populaarsemaid, usaldusvÀÀrsemaid ja kĂ”rge jĂ”udlusega versioonihaldussĂŒsteeme, mis pakub paindlikke mittelineaarse arenduse vahendeid, mis pĂ”hinevad harude loomisel ja ĂŒhendamisel. Ajaloo terviklikkuse tagamiseks ja tagasiulatuvate muudatuste vĂ€ltimiseks kasutatakse iga commit'i puhul varasema ajaloo varjatud hash'imist, samuti on vĂ”imalik arendajate digitaalsete allkirjadega kinnitada eraldi silte ja commite.

Uue versioonis on vÔrreldes eelmise vÀljaandega tehtud 745 muudatust, mille kallal on töötanud 74 arendajat, kellest 18 osalesid arendustes esmakordselt. Peamised uuendused:

  • Alates versioonist 1.18 on saadaval uus kommitite komplekti edastamise reĆŸiim „git rebase —rebase-merges”, mis asendas vana valiku „—preserve-merges”, mis on nĂŒĂŒd mĂ€rgitud kui vananenud. Operatsioon „git rebase” rakendab seeriat commit'e uue aluscommit'i vastu, nĂ€iteks, et viia eraldi haru, kus arendatakse uut funktsiooni, praegusse master-haru, mis sisaldab pĂ€rast harunemist lisatud parandusi:

    o — o — o (minu-funktsioon)

    /

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

    o — o — o (minu-funktsioon)

    /

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

    Varem sai struktuuri sĂ€ilitamiseks harude vahel kasutada valikut „—preserve-merges”, mis vĂ”imaldas interaktiivsel reĆŸiimil kĂ€ivitades (git rebase -i —preserve-merges) redigeerida commit'i ajalugu, kuid ei taganud reposi struktuuri tĂ€ielikku sĂ€ilitamist. Uus reĆŸiim „—rebase-merges” vĂ”imaldab sĂ€ilitada muudatuste struktuuri edastatavas harus, pakkudes samas tĂ€isvĂ”imalust interaktiivseteks toiminguteks, sealhulgas commit'ite kustutamine, ĂŒmbergruppimine ja nimetamine.

    NĂ€iteks „—rebase-merges” kaugelt sulgeda vahekaarte, mis on avatud teistel seadmetel. ĂŒle kanda commit'id eraldi harust uuemale master-harule, sĂ€ilitades samal ajal harude struktuuri edastatavas harus ning teostada vahepeal mĂ”ned muudatused commit'ite mĂ€rkmetes.

  • On lisatud uus haru loomise tugi, mis pĂ”hineb kahe muu haru (merge base, seondumine ĂŒhise esivanemaga) sulamistasu mÀÀramisel, kasutades konstruktsioone „git branch new A
B” ja „git checkout -b new A
B”, kus „A
B” tĂ€hendab kahe mÀÀratud commit'i vahelise sulamistasu mÀÀramist, sarnaselt „git checkout A
B” meetodile, mis nihutab HEAD baascommit'ile ja „diff A
B” nĂ€itab muudatusi commit'i „B” ja commit'iga „A” ĂŒhise esivanema vahel.

    NĂ€iteks, töötades eraldi haru my-feature kallal, saab pakutud vĂ”imalust kasutada, kui on vaja alustada teisest harust, nĂ€iteks samast kohast master-harus, kust haru my-feature vĂ€lja tĂ”mmati. Varem oli selleks vajalik manuaalselt uurida muudatuste ajalugu, mis tekitas ebamugavusi, kui ajalugu oli suur, ning seejĂ€rel kĂ€ivitada «git merge-base master my-feature» kahe haru master ja my-feature vahelise ĂŒhisvanema hash'i arvutamiseks ning luua uus haru suhteliselt ĂŒhisvanema «git branch my-other-feature hash» osas. Git 2.22-st alates on kahe teise haru baasil uue haru loomiseks vĂ”imalik kasutada sĂŒntaksit «git branch my-other-feature A
B»;

  • Lisatud on valik «git branch —show-current», et kuvada haru nimi, saadud checkout-operatsiooni kĂ€igus;
  • Lisatud on valik «git checkout —no-overlay — dir», mis vĂ”imaldab checkout-operatsiooni kĂ€igus viia katalooge dir sisu vastavusse master-haru olekuga. NĂ€iteks, kui lokaalses versioonis kataloogis dir on fail, mida master-harus ei eksisteeri, siis toimub «git checkout master — dir» kĂ€ivitamisel selle jĂ€tmine vaikimisi, kuid kui kasutada valikut «—no-overlay», siis see kustutatakse;
  • KĂ€skluses «git diff» on rakendatud universaalne API valikute töötlemiseks, mis on vĂ”imaldanud ĂŒhtlustada vĂ”imaluste töötlemist teiste git-utilitydega. NĂ€iteks on «git diff» puhul nĂŒĂŒd kĂ”igile valikutele saadaval ka nende antagonisti valikud («—function-context» ja «—no-function-context»);
  • Lisatud on vĂ”imalus filtreerida, kui vĂ€ljastatakse «git log», kommittele kinnitatud laiendatud silte («trailer» — lisainformatsiooni lipud, nagu Signed-off-by ja Co-authored-by). Sildid on filtreeritavad, kasutades nii vĂ”tit kui vÀÀrtust, nĂ€iteks:
    «git log —pretty=»%(trailers:key=Reviewed-by,valueonly)»;
  • Lisatud on uus jĂ€lgimismehhanism Trace2, mis pakub paindlikumat ja struktureeritumat vĂ€ljundvormingut. Trace2 vĂ”imaldab koguda telemeetriat teostatavatest operatsioonidest ja jĂ”udlusandmetest, et teha ĂŒksikasjalikumat analĂŒĂŒsi ja tĂ”rkeotsingut (kasutaja mÀÀrab töötleja, mingeid andmeid ei saadeta vĂ€ljapoole);
  • Parandatud on raportit «git bisect», kus probleemsed commitid on nĂŒĂŒd selgemalt esile tĂ”stetud ja iga faili kohta on kuvatud kokkuvĂ”tlik statistika (muudetud ridade arvu tasemel);
  • Kataloogide ĂŒmbernimetamise heuristika on ĂŒmber töötatud, et vĂ€ltida vale ĂŒmbernimetamise sildistamise kinnitamist. Kahtluse korral on nĂŒĂŒd sellised kataloogid mĂ€rgistatud konfliktsetena;
  • KĂ€ivitati hoiatusteade, kui proovitakse siltida teist silti, mis tavaliselt juhtub ekslikult ja vĂ”ib viia sildi paigaldamiseni valele commitile (nĂ€iteks konstruktsioon «git tag -f -m «updated message» my-tag1 my-tag2» loob sildi vanemale sildile, samas kui arendaja eeldas, et uus silt paigaldatakse commitile, millele viitab vana silt);
  • KĂ€ivitati generatsioon bitikaartide hoidlate jaoks (diskstruktuur «reachability bitmaps»), mis salvestavad andmed objektide komplektide kohta, mis on iga commiti jaoks kergesti kĂ€ttesaadavad, vĂ”imaldades kiiresti kindlaks teha pĂ”hobjekti olemasolu. MĂ€rgitud struktuur vĂ€hendab oluliselt andmete vĂ€ljatĂ”mbamise (git fetch) operatsioonide tĂ€itmise aega.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster