Lëshimi i sistemit të menaxhimit të burimeve të teksteve Git 2.35

Pas dy muaj zhvillimi, u publikua versioni i sistemit të shpërndarë të menaxhimit të kodit burimor Git 2.35. Git është një nga sistemet më të njohura, të besueshme dhe me performancë të lartë për menaxhimin e versioneve, duke ofruar mjete fleksibile për zhvillim jo-lineare, të bazuara në degëzimin dhe bashkimin e degëve. Për të siguruar integritetin e historisë dhe qëndrueshmërinë ndaj ndryshimeve "me pas" përdoret hash-imi implicit i gjithë historisë së mëparshme në çdo commit, gjithashtu është e mundur verifikimi me nënshkrime digjitale të zhvilluesve për etiketat dhe commit-et e veçanta.

Në krahasim me versionin e kaluar, në këtë version janë pranuar 494 ndryshime, të përgatitura me pjesëmarrjen e 93 zhvilluesve, nga të cilët 35 kanë marrë pjesë për herë të parë në zhvillim. Risi kryesore:

  • Janë zgjeruar mundësitë për përdorimin e çelësave SSH për të nënshkruar objektet Git me nënshkrim digjital. Për të ndarë kohën e vlefshmërisë së disa çelësave, është shtuar mbështetje për drejtime OpenSSH "valid-before" dhe "valid-after", me të cilat mund të sigurohet funksionimi i saktë me nënshkrime pas rotacionit të çelësit të njërit nga zhvilluesit. Më parë, kishte një problem me ndarjen e nënshkrimeve me çelësin e vjetër dhe të ri - nëse fshihej çelësi i vjetër, nuk mund të kontrolloheshin nënshkrimet e bëra me të, dhe nëse mbetej - do të kishte mundësi të krijoheshin nënshkrime të reja me çelësin e vjetër, i cili tashmë ishte zëvendësuar nga një tjetër çelës. Me ndihmën e valid-before dhe valid-after mund të ndahet diapazoni i veprimit të çelësave mbi bazën e kohës së krijimit të nënshkrimit.
  • Në konfigurimin merge.conflictStyle, i cili lejon zgjedhjen e mënyrës së paraqitjes së informacionit për konfliktet gjatë bashkimit, është shtuar mbështetje për modalitetin "zdiff3", i cili transferon jashtë zonës së konfliktit të gjitha rreshtat standard të specifikuar në fillim ose në fund të konfliktit, duke mundësuar një paraqitje më kompakte të informacionit.
  • Në komandën "git stash" është shtuar modaliteti "—staged", i cili lejon të fshihen vetëm ndryshimet e shtyra në indeks, për shembull në situata kur është e nevojshme të shtyhet përkohësisht një pjesë e ndryshimeve komplekse për të shtuar fillimisht atë që është gati, dhe për t'u marrë me të tjera pas një kohe. Ky modalitet është i ngjashëm me komandën "git commit", e cila regjistron vetëm ndryshimet e vendosura në indeks, por në vend të krijimit të një commit-i të ri, rezultati në "git stash —staged" ruhet në një zonë përkohshme stash. Pasi ndryshimet të nevojiten, ato mund të kthehen me komandën "git stash pop".
  • Në komandën "git log" është shtuar një specifikator i ri formati "—format=%(describe)", i cili lejon kombinimin e rezultatit të "git log" me rezultatin e ekzekutimit të komandës "git describe". Parametrat për "git describe" specifikohen drejtpërdrejt brenda specifikatorit ("—format=%(describe:match=,exclude=)"), ku gjithashtu mund të përfshihen etiketat e shkurtuara ("—format=%(describe:tags=)") dhe të konfigurohet numri i simboleve të gjashtave të identifikimit të objekteve ("—format=%(describe:abbrev=)"). Për shembull, për të shfaqur 8 commit-et e fundit, etiketat e të cilave nuk kanë etiketën e kandidatit për lëshim, dhe të përcaktojë identifikuesit e 8 karaktereve, mund të përdoren komandat: $ 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
  • Në konfigurimin user.signingKey është realizuar mbështetje për lloje të reja çelësash, të cilat nuk kufizohen vetëm në llojin "ssh-" dhe specifikimin e rrugës së plotë të skedarit për çelësin. Llojet alternative përcaktohen me prefiksin "key::", për shembull, "key::ecdsa-sha2-nistp256" për çelësat ECDSA.
  • Ka pasur një rritje të dukshme të shpejtësisë së gjenerimit të listës së ndryshimeve në modalitetin "—histogram", si dhe gjatë përdorimit të opsionit "—color-moved-ws", i cili kontrollon ndriçimin e hapësirave në diff-in me ngjyrë.
  • Në komandën "git jump", e cila përdoret për t'i ofruar Vim informacion në lidhje me kalimet e saktë në pozitat e kërkuara në skedar gjatë zgjidhjes së konflikteve të bashkimit, shikimit të diferencave ose kryerjes së veprimeve të kërkimit, është ofruar mundësia e ngushtimit të konflikteve të bashkimit të përfshira. Për shembull, për t'i kufizuar veprimet vetëm në direktorin "foo" mund të tregoni "git jump merge — foo", dhe për të përjashtuar nga përpunimi direktorin "Documentation" - "git jump merge — ':^Documentation'".
  • Është punuar në standardizimin e përdorimit të tipit "size_t" në vend të "unsigned long" për vlerat që përfaqësojnë madhësinë e objekteve, e cila ka lejuar përdorimin e filtrave "clean" 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, ku tipi "unsigned long" është i kufizuar në 4 byte.
  • Në komandën «git am» është shtuar opsioni «—empty=(stop|drop|keep)», i cili lejon zgjedhjen e sjelljes për mesazhet bosh që nuk përmbajnë patch, gjatë përpunimit të patch-ëve nga kutia e postës. Vlera «stop» do të çojë në përfundimin e tërë operacionit të aplikuar të patch-ëve, «drop» do të injorojë patch-in bosh, ndërsa «keep» do të krijojë një komit bosh.
  • Në komandat «git reset», «git diff», «git blame», «git fetch», «git pull» dhe «git ls-files» është shtuar mbështetje për indekset e pjesshme (sparse index), duke lejuar rritjen e performancës dhe kursimin e hapësirës në depo që kryejnë operacione të klonimit të pjesshëm (sparse-checkout).
  • Komanda «git sparse-checkout init» është shpallur e vjetër, ndërsa duhet të përdoret «git sparse-checkout set».
  • Është shtuar implementimi 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 magazinimin bllok, i aplikuar nga projekti JGit dhe optimizuar për ruajtjen e shumë referencave. Backend-i ende nuk është integruar me sistemin e referencave (refs) dhe nuk është gati për përdorim praktik.
  • Paleta e ngjyrave e komandës «git grep» është sjellë në përputhje me utilitarin GNU grep.

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