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ërfshin 494 ndryshime të përgatitura me ndihmën e 93 zhvilluesve, 35 prej të cilëve ishin të rinj në projekt. Karakteristikat kryesore të reja përfshijnë:
- Mundësia për të përdorur çelësat SSH për të nënshkruar në mënyrë dixhitale objektet Git është zgjeruar. Për të dalluar vlefshmërinë e çelësave të shumtë, është shtuar mbështetje për direktivat OpenSSH "valid-before" dhe "valid-after". Këto direktiva sigurojnë përpunimin e duhur të nënshkrimit pasi çelësi i një zhvilluesi është ndërruar. Më parë, kishte një problem me ndarjen e nënshkrimeve të krijuara me një çelës të vjetër dhe të ri: fshirja e çelësit të vjetër do të parandalonte verifikimin e nënshkrimeve të krijuara me të, por lënia e tij do të lejonte krijimin e nënshkrimeve të reja me çelësin e vjetër, edhe pse ai ishte zëvendësuar tashmë nga një çelës tjetër. Duke përdorur valid-before dhe valid-after, ju mund të ndani vlefshmërinë e çelësave bazuar në kohën e krijimit të nënshkrimit.
- Cilësimi merge.conflictStyle, i cili ju lejon të zgjidhni modalitetin e formatimit për informacionin e konfliktit të bashkimit, tani mbështet modalitetin "zdiff3", i cili zhvendos të gjitha rreshtat standarde të specifikuara në fillim ose në fund të një konflikti jashtë zonës së konfliktit, duke lejuar një prezantim më kompakt të informacionit.
- Komanda "git stash" tani ka një modalitet "--staged". Ky modalitet ju lejon të ruani në memorie vetëm ndryshimet e shtuara në memorie, për shembull kur duhet të vendosni përkohësisht në raft disa ndryshime komplekse për të shtuar atë që është tashmë në vend dhe pastaj të merreni me pjesën tjetër më vonë. Ky modalitet është i ngjashëm me komandën "git commit", e cila shkruan vetëm ndryshimet që janë vendosur në fazë, por në vend që të krijojë një commit të ri, "git stash --staged" e ruan rezultatin në një zonë të përkohshme të memories. Kur të keni nevojë për ndryshimet, mund t'i riktheni ato me "git stash pop".
- NjĂ« specifikues i ri formati, "--format=%(describe)", Ă«shtĂ« shtuar nĂ« komandĂ«n "git log", duke ju lejuar tĂ« kombinoni rezultatin e "git log" me rezultatin e komandĂ«s "git describe". Parametrat pĂ«r "git describe" specifikohen direkt brenda specifikuesit ("--format=%(describe:match=")" ,pĂ«rjashto= )"), tĂ« cilat mund tĂ« pĂ«rfshijnĂ« edhe etiketa tĂ« shkurtuara ("âformat=%(pĂ«rshkruaj:tags= )") dhe konfiguroni numrin e karaktereve heksadecimal pĂ«r tĂ« identifikuar objektet ("âformat=%(pĂ«rshkruaj:abbrev= )"). PĂ«r shembull, pĂ«r tĂ« shfaqur 8 commit-et e fundit, etiketat e tĂ« cilave nuk kanĂ« njĂ« etiketĂ« kandidati pĂ«r lĂ«shim dhe pĂ«r tĂ« specifikuar ID me 8 karaktere, mund tĂ« pĂ«rdorni komandĂ«n: $ git log -8 --format='%(describe:exclude=*-rc*,abbrev=13)' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-g2b95d94b056ab v2.34.1-642-gb56bd95bbc8f7 v2.34.1-203-gffb9f2980902d v2.34.1-640-gdf3c41adeb212 v2.34.1-639-g36b65715a4132
- Cilësimi user.signingKey tani mbështet lloje të reja çelësash, pa u kufizuar vetëm në llojin "ssh-" dhe shtegun e plotë të skedarit për te çelësi. Llojet alternative specifikohen duke përdorur parashtesën "key::", për shembull, "key::ecdsa-sha2-nistp256" për çelësat ECDSA.
- Shpejtësia e gjenerimit të regjistrit të ndryshimeve në modalitetin "--histogram" është rritur ndjeshëm, si dhe kur përdoret opsioni "--color-moved-ws", i cili kontrollon nxjerrjen në pah të boshllëqeve në një ndryshim ngjyrash.
- Komanda "git jump", e përdorur për t'i dhënë Vim-it informacion të saktë mbi kërcimin gjatë analizimit të konflikteve të bashkimit, shikimit të ndryshimeve ose kryerjes së një kërkimi, tani ofron mundësinë për të ngushtuar fushën e konflikteve të bashkimit. Për shembull, për të kufizuar operacionet në direktorinë "foo", mund të specifikoni "git jump merge - foo", dhe për të përjashtuar direktorinë "Documentation" nga përpunimi, mund të specifikoni "git jump merge - ':^Documentation'".
- ĂshtĂ« kryer punĂ« pĂ«r tĂ« standardizuar pĂ«rdorimin e tipit "size_t" nĂ« vend tĂ« "unsigned long" pĂ«r vlerat qĂ« pĂ«rfaqĂ«sojnĂ« madhĂ«sinĂ« e objekteve, gjĂ« qĂ« ka bĂ«rĂ« tĂ« mundur aplikimin e filtrave "clean" dhe "smudge" nĂ« skedarĂ« mĂ« tĂ« mĂ«dhenj se 4 GB nĂ« tĂ« gjitha platformat, duke pĂ«rfshirĂ« platformat me modelin e tĂ« dhĂ«nave LLP64, ku tipi "unsigned long" Ă«shtĂ« i kufizuar nĂ« 4 bajt.
- Komanda "git am" tani ka opsionin "--empty=(stop|drop|keep)". Kjo ju lejon të specifikoni sjelljen për email-et bosh që nuk përmbajnë patch-e kur analizoni patch-e nga një kuti postare. Vlera "stop" do të mbyllë të gjithë aplikacionin e patch-it, "drop" do ta anashkalojë patch-in bosh dhe "keep" do të krijojë një commit bosh.
- Komandat git reset, git diff, git blame, git fetch, git pull dhe git ls-files tani mbĂ«shtesin indekset e rralla, duke pĂ«rmirĂ«suar performancĂ«n dhe duke kursyer hapĂ«sirĂ« âânĂ« depot qĂ« kryejnĂ« operacione tĂ« rralla tĂ« kontrollit.
- Komanda 'git sparse-checkout init' është hequr nga përdorimi dhe në vend të saj duhet të përdoret 'git sparse-checkout set'.
- ĂshtĂ« shtuar njĂ« implementim fillestar i backend-it tĂ« ri "reftable" pĂ«r ruajtjen e referencave, siç janĂ« degĂ«t dhe etiketat, nĂ« depo. Backend-i i ri pĂ«rdor hapĂ«sirĂ« ââruajtjeje nĂ« blloqe, siç pĂ«rdoret nga projekti JGit, dhe Ă«shtĂ« i optimizuar pĂ«r ruajtjen e njĂ« numri shumĂ« tĂ« madh referencash. Backend-i nuk Ă«shtĂ« integruar ende 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ërputhur me programin GNU grep.
Burimi: opennet.ru
