Git 2.39 avota kontroles sistēmas izlaiÅ”ana

Pēc divu mēneÅ”u izstrādes ir izlaista izplatÄ«tā avota kontroles sistēma Git 2.39. Git ir viena no populārākajām, uzticamākajām un augstas veiktspējas versiju kontroles sistēmām, kas nodroÅ”ina elastÄ«gus nelineārus izstrādes rÄ«kus, kuru pamatā ir sazaroÅ”ana un apvienoÅ”ana. Lai nodroÅ”inātu vēstures integritāti un noturÄ«bu pret retroaktÄ«vām izmaiņām, katrā saistÄ«bā tiek izmantota visas iepriekŔējās vēstures netieÅ”a jaukÅ”ana, kā arÄ« ir iespējams sertificēt atseviŔķus tagus un saistÄ«bas ar izstrādātāju digitālajiem parakstiem.

SalÄ«dzinot ar iepriekŔējo versiju, jaunajā versijā tika iekļautas 483 izmaiņas, kas sagatavotas, piedaloties 86 izstrādātājiem, no kurām 31 izstrādē piedalÄ«jās pirmo reizi. Galvenie jauninājumi:

  • Komanda ā€œgit shortlogā€, kas paredzēta, lai parādÄ«tu kopsavilkumus ar statistiku no izmaiņu vēstures, ir pievienojusi opciju ā€œ-groupā€ patvaļīgai saistÄ«bu grupÄ“Å”anai pēc laukiem, kas neaprobežojas tikai ar autoru vai apņemÅ”anos. Piemēram, lai parādÄ«tu izstrādātāju sarakstu ar informāciju par izmaiņu skaitu, ņemot vērā laukā "LÄ«dzautors" minētos palÄ«gus, varat izmantot komandu: git shortlog -ns --group=author - -grupa=piekabe:lÄ«dzautors

    Shortlog izvadi var apkopot, izmantojot formatÄ“Å”anas specifikācijas, un opcija ā€œ--groupā€ var ievērojami vienkārÅ”ot sarežģītu atskaiÅ”u izveidi un novērst vajadzÄ«bu pēc papildu kārtoÅ”anas komandām. Piemēram, lai izveidotu pārskatu ar informāciju par to, cik katra mēneÅ”a laikā tika pieņemtas saistÄ«bas konkrētam laidienam, varat norādÄ«t: git shortlog v2.38.0.. ā€”date='format:%Y-%m' ā€”group=' %cd' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 IepriekÅ” lÄ«dzÄ«gas darbÄ«bas veikÅ”anai bija jāizmanto kārtoÅ”anas un unikālās utilÄ«tas: git log v2.38.0. .. ā€”date='formāts:%Y -%m' ā€”format='%cd' | Ŕķirot | unikāls -c

  • Ir paplaÅ”inātas mehānisma ā€œCruft packsā€ iespējas, kas paredzētas nesasniedzamu objektu iesaiņoÅ”anai, uz kuriem nav atsauces repozitorijā (nav norādÄ«ti zari vai tagi). Nesasniedzamos objektus atkritumu savācējs izdzÄ“Å”, bet tie paliek krātuvē noteiktu laiku, pirms tie tiek izdzēsti, lai izvairÄ«tos no sacensÄ«bu apstākļiem. ā€œCruft packsā€ mehānisms ļauj glabāt visus nesasniedzamos objektus vienā pakotnes failā un attēlot datus par katra objekta modifikācijas laiku atseviŔķā tabulā, kas glabājas atseviŔķā failā ar paplaÅ”inājumu ā€œ.mtimesā€, lai tie to darÄ«tu. nepārklājas ar kopējo modifikācijas laiku.

    Laiks, cik ilgi nesasniedzamie objekti paliek repozitorijā, pirms tie tiek faktiski izdzēsti, tiek noteikts ar opciju ā€œā€”prune=ā€. " Tomēr, lai gan kavÄ“Å”anās pirms dzÄ“Å”anas ir diezgan efektÄ«vs un praktisks veids, kā novērst repozitorija korupciju sacensÄ«bu apstākļu dēļ, tas nav 100% uzticams. Lai atvieglotu bojātas repozitorija atjaunoÅ”anu, jaunajā laidienā ir nodroÅ”ināta iespēja saglabāt trÅ«kstoÅ”os objektus, komandai ā€œgit repackā€ pievienojot opciju ā€œ--expire-toā€, kas ļauj norādÄ«t failu, lai izveidotu ārēju. visu izdzēsto objektu kopijas. Piemēram, lai saglabātu failā backup.git nesasniedzamos objektus, kas nav mainÄ«juÅ”ies pēdējo 5 minÅ«Å”u laikā, varat izmantot komandu: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -to=../backup.git

  • Ievērojami palielināts (lÄ«dz 70%) operācijas "git grep -cached" ātrums, veicot meklÄ“Å”anu apgabalos, kuros tiek izmantota daļēja klonÄ“Å”ana (sparse-checkout) un kuriem ir daļēji indeksi (sparse index). IepriekÅ”, norādot opciju ā€œkeÅ”atmiņāā€, meklÄ“Å”ana vispirms tika veikta parastajā indeksā un pēc tam daļējā rādÄ«tājā, kas izraisÄ«ja ievērojamas aizkavÄ“Å”anās, meklējot lielos krātuvēs.
  • Ir paātrināta servera veiktā jauno objektu saskaņotÄ«bas pārbaude, pirms tie tiek ievietoti repozitorijā operācijas "git push" laikā. Pārejot uz tikai deklarēto saiÅ”u uzskaiti pārbaudē, testa repozitorijā ar 7 miljoniem saiÅ”u, no kurām tikai 3% aptver push operācija, veiktās optimizācijas ļāva samazināt pārbaudes laiku 4.5 reizes.
  • Lai aizsargātu pret iespējamu veselu skaitļu pārpildÄ«Å”anu kodā, komanda "git apply" ierobežo apstrādājamo ielāpu maksimālo izmēru. Ja ielāpa izmērs pārsniedz 1 GB, tagad tiks parādÄ«ta kļūda.
  • Lai aizsargātu pret iespējamām ievainojamÄ«bām, ir veiktas izmaiņas, lai no galvenēm notÄ«rÄ«tu nevajadzÄ«gu informāciju, izmantojot moduli h2h3 ar opciju GIT_TRACE_CURL=1 vai GIT_CURL_VERBOSE=1 kopā ar HTTP/2.
  • Veicot pārbaudi filiālei, kas ir simboliska saite uz citu filiāli, komanda "git symbolic-ref HEAD" tagad parāda mērÄ·a filiāles nosaukumu, nevis simboliskās saites nosaukumu.
  • Pievienots argumenta @{-1} atbalsts opcijai ā€œ--edit-descriptionā€ (ā€œgit branch ā€”edit-description @{-1}ā€), lai rediģētu iepriekŔējās filiāles aprakstu.
  • Pievienota komanda "git merge-tree --stdin", lai nodotu opciju sarakstu, izmantojot standarta ievadi.
  • TÄ«kla failu sistēmās fsmonitor apdarinātājs, kas uzrauga izmaiņas failu sistēmā, pēc noklusējuma ir atspējots.

Avots: opennet.ru

Pievieno komentāru