Git 2.54 vÀljalase

Esitatud on Git 2.54 hajutatud versioonihaldussĂŒsteemi vĂ€ljalase. Git pakub kĂ”rget jĂ”udlust ja vĂ”imalusi mittejĂ€rgnevaks arenduseks, kasutades harude ja liitmise aluseid. Ajaloo terviklikkuse ja tagasivaateliste muutuste vastupidavuse tagamiseks kasutatakse mitteavatud rĂ€mpsposti kogu varasema ajaloo igas kommis, samuti on eraldi siltide ja commiide digitaalne allkirjastamine arendajate poolt. Git kood jaotatakse vĂ€lja GPLv2+ litsentsi alusel.

Uues versioonis on vÔrreldes eelmise vÀljalaske versiooniga vastu vÔetud 770 muudatust, mille on ette valmistanud 137 arendajat (66 neist osaleb Git arenduses esmakordselt). Peamised uuendused:

  • On rakendatud kĂ€sk „git history”, mis pakub katsetamiseks ajalugu muutmise vĂ”imalusi, mis on lihtsamad ja turvalisemad kui muudatuste baasiga liitmine kĂ€suga „git rebase”. Pakutakse kahte operatsiooni:
    • «git history reword <commit>» sĂ”numi ĂŒmberkirjutamiseks mÀÀratud commit'is ilma töökoormust ja indeksi muutmata (vĂ€lja arvatud kommentaar, ĂŒlejÀÀnud jÀÀb muutumatuks). NĂ€iteks trĂŒkivea parandamiseks.
    • «git history split <commit>» mÀÀratud commit'i interaktiivseks jagamiseks kaheks erinevaks commit'iks, kus valitud osad liigutatakse algsest commit'ist tĂ€iendavasse commit'i.

    Tulevastes vĂ€ljaandes oodatakse tĂ€iendavate kĂ€skude lisamist: «git history fixup» commit'i parandamiseks, «git history drop» commit'i eemaldamiseks, «git history reorder» commit'ide jĂ€rjekorra muutmiseks ja «git history squash» commit'ide ĂŒhendamiseks.

  • Uus meetod kĂ€itaja (hook) mÀÀramiseks konfiguratsioonifailides on rakendatud. Selle asemel, et asetada kĂ€itaja skripte kataloogi «.git/hooks» igas repos, saab nĂŒĂŒd kĂ€itajaid otse mÀÀrata konfiguratsioonifailides. Seadeid saab siduda kas repo vĂ”i mÀÀrata kĂ”ikidele repodele kehtivates konfiguratsioonifailides (/etc/gitconfig) vĂ”i kasutajarepos (~/.gitconfig). Ühele sĂŒndmusele on vĂ”imalik siduda mitu kĂ€itajat. Skripte kataloogist «.git/hooks» kutsutakse endiselt, kuid need kĂ€ivitatakse pĂ€rast konfiguratsioonifailide kĂ€itajaid. KĂ€itaja nimekirja vaatamiseks tuleb kasutada kĂ€sku «git hook list», ning konkreetse kĂ€itaja deaktiveerimiseks seade «hook..enabled = false». [hook «linter»] event = pre-commit command = ~/.bin/linter —cpp20 [hook «no-leaks»] event = pre-commit command = ~/.bin/leak-detector $ git hook list pre-commit global linter ~/.bin/linter —cpp20 local no-leaks ~/.bin/leak-detector
  • Git maintenance'i meeskonnas on vaikimisi kasutusel strategia «geometric» («git config set maintenance.strategy geometric»), mis aitab vĂ€hendada suurte monoreposiitide hooldamise aega. Uus strateegia, vĂ”rreldes varasema strateegiaga, mis kasutas sama loogikat nagu git gc meeskond, vĂ€ldib kĂ”igi objektide ĂŒmberpakendamist ja kĂ”rvaldab liigsed ressursimahukad toimingud, nagu kĂ”igi pack-failide ĂŒhendamine (vajadusel toimub ĂŒhendamine osade kaupa ja ilma kustutamata kaugeid objekte).
  • Objektide andmebaas (ODB) ja sellega seotud API-d on viidud uuele arhitektuurile, mis pĂ”hineb pluginaikuste kasutamisel. Tehtud restruktureerimine abstraktsioonib objektide salvestamisformaat ja edaspidi vĂ”imaldab selliste funktsioonide rakendamist nagu alternatiivsed tagaaised ja objekti vormingud, nĂ€iteks suurte binaarfailide efektiivsemaks salvestamiseks vĂ”i suurte git-hostingute töö optimeerimiseks.
  • Meeskonna «git repo structure» kĂ€sk, mis toob vĂ€lja repository struktuuri, kuvab mitte ainult kogu suurust, vaid ka suurimate objektide nĂ€itamist iga tĂŒĂŒbi jĂ€rgi, mis vĂ”imaldab hindamisel suuruseta kolmandate osapoolte utiliiti git-sizer. $ git repo structure 
 | * Suurimad objektid | | * Committid | | * Maksimaalne suurus [1] | 17.23 KiB | | * Maksimaalsed vanemad [2] | 10 | | * Puud | | * Maksimaalne suurus [3] | 58.85 KiB | | * Maksimaalsed kirjeldused [4] | 1.18 k | | * Blobid | | * Maksimaalne suurus [5] | 1019.51 KiB | | * Silte | | * Maksimaalne suurus [6] | 7.13 KiB |
  • Meeskonna «git replay» kĂ€sk, mida kasutatakse «git rebase» asemel ajaloo taastamiseks, serveril tööruumi puudumisel on vaikimisi lubatud atomaarne linkide uuendamine (kuna kĂ€su update-ref loend ei vĂ€ljastata kĂ€sitsi tĂ€itmiseks), rakendatakse suvandit «—revert» muudatuste tĂŒhistamiseks mitmest commitist, tagastatakse tĂŒhistatud commitid ja vĂ”imaldatakse ajaloo taastamine kuni juurcommiti.
  • KĂ€sku «git rev-list» ja sarnastesse kĂ€skudesse on lisatud suvand «—maximal-only», et nĂ€idata ainult commite, mis ei ole kergesti saavutatavad teiste commitide poolt.
  • KĂ€sku «git repo info» on lisatud valik «—keys», et kuvada kĂ”ik teadaolevad vĂ”tmed.
  • KĂ€sk «git add -p» vĂ”imaldab navigeerides koodiplokkide vahel klahvidega «J» ja «K» mĂ€rgistada juba heakskiidetud ja vahelejĂ€etud plokke. Lisatud on valik «—no-auto-advance», et vĂ€lja lĂŒlitada automaatne liikumine jĂ€rgmisele failile, et saaks tagasi minna eelnevatesse failidesse enne commit'i.
  • Optimeeritud on web-liidese «gitweb» töökindlus mobiilseadmetes.
  • KĂ€sku «git apply —directory» kasutamisel tagatakse failiteede normaliseerimine, nĂ€iteks «./un/../normalized/path».
  • Dokumenteeritud on vĂ”imalus lisada enda allkomande, paigutades failid «git-» teegi kĂ€ivitavate failide katalooge.
  • KĂ€sku «git send-email» on lisatud tugi klienditserifikaatidele.
  • KĂ€sku «git status» on teostatud seadistamine «status.compareBranches», mille kaudu saab mÀÀrata harud, millega vĂ”rreldakse praegust haru. [status] compareBranches = @{upstream} @{push}
  • KĂ€sku «git rebase» on lisatud valik «—trailer», et hĂ”lbustada metainformatsiooni lisamist kĂ”ikidele commit'idele. git rebase —trailer «Reviewed-by: Test »
  • Komandasse «git fast-import» on lisatud vĂ”imalus asendada allkirjad commit'ides, mis on pĂ€rast importimist muutunud kehtetuks.
  • Lisatud tugi multi-pack-indeksite MIDX pakkimisele (compaction), kus omavahel ĂŒhendatakse vĂ€iksemad MIDX-indeksi kihtide teave objektide kĂ€ttesaadavuse ja seotud bitmap-failide kohta, mis vĂ€hendab pikaajalistes repode kogunenud kihtide arvu.
  • Komandasse «git backfill» on rakendatud vĂ”imalus mÀÀrata revisjonid (commit'ide vahemikud) ja teepĂ€ised (pathspec) ajaloo muudatuste piiramiseks. git backfill main~100..main git backfill — ‘*.c’
  • Lisatud alternatiivsed vormid kĂ€su «git config list» kutsumiseks — «git config -l» ja «git config —list».
  • Lubatud on kasutada mitte-ASCII mĂ€rke kĂ€sude aliaste nimedes, mis on mÀÀratud konfiguratsioonifailis. [alias «fetch»] command = fetch
  • Muudetud on GPG-vĂ”tmete kehtivusaja lĂ”ppemisega seonduvate allkirjade kuvamine, mis olid Ă”iged commit'i allkirjastamisel. NĂŒĂŒd kuvatakse sellised allkirjad korrektsetena, mĂ€rkides vĂ”tme aegumise (varem esitati nad punasena, andes mulje, et nad on vale).
  • HTTP-protokolli kaudu ligipÀÀsu korral on lisatud 429 (Liigne nĂ”udlus) veakĂ€sitlus. Taoliste vigadega lĂ”ppenud pĂ€ringud kĂ€sitletakse nĂŒĂŒd mitte kui fataalne probleem, vaid kui ajutine viga, mille puhul tuleks mĂ”ne aja pĂ€rast operatsiooni korrata. Kordamise viivitus seadistatakse valiku „http.retryAfter” kaudu, korduste arv — „http.maxRetries”, ooteaeg — „http.maxRetryTime”.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster