Lëshimi i kontrollit të burimit Git 2.35

Pas dy muajsh zhvillimi, sistemi i kontrollit të burimit të shpërndarë Git 2.35 është lëshuar. Git është një nga sistemet më të njohura, më të besueshme dhe me performancë të lartë të kontrollit të versioneve, duke ofruar mjete zhvillimi fleksibël jo-lineare të bazuara në degëzimin dhe bashkimin. Për të siguruar integritetin e historisë dhe rezistencën ndaj ndryshimeve retroaktive, hashimi i nënkuptuar i të gjithë historisë së mëparshme përdoret në çdo kryerje; është gjithashtu e mundur të certifikohen etiketat dhe detyrimet individuale me nënshkrime dixhitale të zhvilluesve.

Krahasuar me versionin e mëparshëm, versioni i ri përfshinte 494 ndryshime, të përgatitura me pjesëmarrjen e 93 zhvilluesve, nga të cilët 35 morën pjesë në zhvillim për herë të parë. Risitë kryesore:

  • Mundësitë për përdorimin e çelësave SSH për të nënshkruar në mënyrë dixhitale objektet Git janë zgjeruar. Për të kufizuar periudhën e vlefshmërisë së disa çelësave, është shtuar mbështetja për direktivat OpenSSH "e vlefshme përpara" dhe "e vlefshme pas", me të cilat mund të siguroni punë korrekte me nënshkrimet pasi çelësi të jetë rrotulluar nga një prej zhvilluesve. Para kësaj, kishte një problem me ndarjen e nënshkrimeve nga çelësi i vjetër dhe i ri - nëse fshini çelësin e vjetër, do të jetë e pamundur të verifikoni nënshkrimet e bëra me të, dhe nëse e lini atë, atëherë do të mbetet e mundur të krijoni nënshkrime të reja me çelësin e vjetër, i cili tashmë është zëvendësuar nga një çelës tjetër. Duke përdorur të vlefshme-para dhe të vlefshme-pas, ju mund të ndani shtrirjen e çelësave bazuar në kohën kur u krijua nënshkrimi.
  • Në cilësimin merge.conflictStyle, i cili ju lejon të zgjidhni modalitetin për shfaqjen e informacionit rreth konflikteve gjatë një bashkimi, është shfaqur mbështetja për modalitetin "zdiff3", i cili lëviz të gjitha linjat standarde të specifikuara në fillim ose në fund të konfliktit jashtë konfliktit. zonë, e cila lejon një paraqitje më kompakte të informacionit.
  • Modaliteti "--stage" është shtuar në komandën "git stash", e cila ju lejon të fshehni vetëm ndryshimet e shtuara në indeks, për shembull në një situatë kur ju duhet të shtyni përkohësisht disa nga ndryshimet komplekse në mënyrë që së pari shtoni atë që tashmë është gati dhe merruni me pjesën tjetër pas një kohe. Modaliteti është i ngjashëm me komandën "git commit", duke shkruar vetëm ndryshimet e vendosura në indeks, por në vend të krijimit të një commit të ri në "git stash —staged", rezultati ruhet në zonën e përkohshme të ruajtjes. Pasi të nevojiten ndryshimet, ato mund të kthehen me komandën "git stash pop".
  • Një specifikues i ri i formatit është shtuar në komandën "git log", "-format=%(describe)", i cili ju lejon të kombinoni daljen e "git log" me daljen e komandës "git describe". Parametrat për "git describe" janë specifikuar direkt brenda specifikuesit ("-format=%(describe:match= ,përjashtim= )"), në të cilat mund të përfshini edhe etiketa të shkurtuara ("—format=%(describe:tags= )") dhe konfiguroni numrin e karaktereve heksadecimal për të identifikuar objektet (“—format=%(përshkruani:abbrev= )"). Për shembull, për të renditur 8 kryerjet e fundit, etiketat e të cilave nuk kanë një etiketë kandidati për lëshim, dhe duke specifikuar identifikuesit me 8 karaktere, mund të përdorni komandën: $ git log -8 —format='%(përshkruani:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-2-95. gb94bd056 bbc2.34.1f642 v56-95-gffb8f7d v2.34.1-203- gdf9c2980902adeb2.34.1 v640-3-g41b212a2.34.1
  • Cilësimi user.signingKey tani mbështet lloje të reja çelësash që nuk kufizohen në llojin "ssh-" dhe duke specifikuar shtegun e plotë të skedarit drejt çelësit. Llojet alternative specifikohen duke përdorur prefiksin "key::", për shembull "key::ecdsa-sha2-nistp256" për çelësat ECDSA.
  • Shpejtësia e gjenerimit të një liste ndryshimesh në modalitetin "-histogram", si dhe kur përdoret opsioni "-color-moved-ws", i cili kontrollon theksimin e hapësirave në një ndryshim ngjyrash, është rritur ndjeshëm.
  • Komanda "git jump", e përdorur për t'i dhënë Vim-it informacion rreth kërcimit të saktë në pozicionin e dëshiruar në një skedar kur analizon konfliktet e bashkimit, shikimin e dallimeve ose kryerjen e një operacioni kërkimi, ofron mundësinë për të ngushtuar konfliktet e bashkimit të mbuluara. Për shembull, për të kufizuar operacionet vetëm në direktorinë "foo", mund të specifikoni "git jump merge - foo", dhe për të përjashtuar drejtorinë "Documentation" nga përpunimi - "git jump merge - ':^Documentation'""
  • Është punuar për standardizimin e përdorimit të tipit "size_t" në vend të "gjatë të panënshkruar" për vlerat që përfaqësojnë madhësinë e objekteve, gjë që bëri të mundur përdorimin e filtrave "të pastër" dhe "smudge" me skedarë më të mëdhenj se 4 GB. në të gjitha platformat, duke përfshirë platformat me modelin e të dhënave LLP64, lloji "i gjatë i panënshkruar" në të cilin është i kufizuar në 4 bajt.
  • Opsioni "-empty=(stop|drop|keep)" është shtuar në komandën "git am", i cili ju lejon të zgjidhni sjelljen për mesazhet boshe që nuk përmbajnë arna kur analizoni arna nga kutia postare. Vlera "stop" do të përfundojë të gjithë operacionin patching, "drop" do të kapërcejë një patch bosh dhe "keep" do të krijojë një angazhim bosh.
  • Mbështetje e shtuar për indekset e pjesshme (indeksi i rrallë) për komandat "git reset", "git diff", "git blame", "git fetch", "git pull" dhe "git ls-files" për të përmirësuar performancën dhe për të kursyer hapësirë ​​në depo , në të cilat kryhen operacione të pjesshme të klonimit (sparse-checkout).
  • Komanda "git sparse-checkout init" është zhvlerësuar dhe duhet të zëvendësohet me "git sparse-checkout set".
  • U shtua zbatimi fillestar i një fundi të ri "të rikthyeshëm" për ruajtjen e referencave të tilla si degët dhe etiketat në depo. Backend-i i ri përdor ruajtjen e bllokut të përdorur nga projekti JGit dhe është optimizuar për ruajtjen e një numri shumë të madh referencash. Backend nuk është ende i integruar me sistemin refs dhe nuk është gati për përdorim praktik.
  • Paleta e ngjyrave të komandës "git grep" është rregulluar për t'u përshtatur me mjetin GNU grep.

Burimi: opennet.ru

Shto një koment