Git 2.39 iturburu-kontrolaren bertsioa

Bi hilabeteko garapenaren ondoren, Git 2.39 banatutako iturburu-kontrol sistema kaleratu da. Git bertsioak kontrolatzeko sistema ezagunenetako, fidagarri eta errendimendu handikoenetako bat da, adarkatze eta bategitean oinarritutako garapen-tresna ez-lineal malguak eskaintzen ditu. Historiaren osotasuna eta aldaketa atzerakoiekiko erresistentzia bermatzeko, aurreko historia osoaren hashing inplizitua erabiltzen da konpromiso bakoitzean; gainera, etiketa eta konpromisoak garatzaileen sinadura digitalarekin ziurta daitezke.

Aurreko bertsioarekin alderatuta, bertsio berriak 483 aldaketa izan zituen, 86 garatzaileren parte-hartzearekin prestatuak, eta horietatik 31k garapenean parte hartu zuten lehen aldiz. Berrikuntza nagusiak:

  • "git shortlog" komandoak, aldaketen historiako estatistikekin laburpenak bistaratzeko pentsatuta, "-group" aukera bat gehitu du egile edo egilera mugatzen ez diren eremuen arabera konpromisoak arbitrarioki taldekatzeko. Esaterako, garatzaileen zerrenda bat bistaratzeko aldaketa kopuruari buruzko informazioa, "Co-egileak" eremuan aipatutako laguntzaileak kontuan hartuta, komandoa erabil dezakezu: git shortlog -ns --group=author - -taldea=trailerra:egilekidea

    Shortlog irteera formatu-zehaztaileen bidez batu daiteke, eta "--group" aukerak txosten konplexuen sorrera nabarmen erraztu dezake eta ordenatzeko komando gehigarrien beharra ezaba dezake. Adibidez, hilabete bakoitzean bertsio jakin baterako zenbat konpromiso onartu diren buruzko txosten bat sortzeko, honako hau zehaztu dezakezu: 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 Aurretik, antzeko eragiketa bat egiteko beharrezkoa izango zen sort eta uniq utilitateak erabiltzea: git log v2.38.0 .. β€”data='formatua:%Y -%m' β€”formatua='%cd' | ordenatu | uniq -c

  • "Cruft packs" mekanismoaren gaitasunak, biltegian erreferentziarik ez duten objektuak ontziratzeko diseinatua (adarren edo etiketen erreferentziarik ez), zabaldu egin dira. Lortu ezin diren objektuak zabor-biltzaileak ezabatzen ditu, baina denbora jakin batean biltegian geratzen dira ezabatu baino lehen lasterketa-baldintzak saihesteko. "Cruft paketeak" mekanismoari esker, eskuraezin diren objektu guztiak pakete-fitxategi batean gorde ditzakezu, eta objektu bakoitzaren aldaketa-denborari buruzko datuak taula bereizi batean bistaratu, ".mtimes" luzapena duen fitxategi bereizi batean gordeta, horrela egin dezaten. aldaketa-denbora osoaren gainean ez gainjartzea.

    Eskuratu ezin diren objektuak biltegian benetan ezabatu aurretik geratzen den denbora "β€”prune=" aukerak zehazten du. " Hala ere, ezabatu aurretik atzeratzea arraza-baldintzen ondorioz biltegiaren ustelkeria saihesteko modu nahiko eraginkorra eta praktikoa den arren, ez da %100 fidagarria. Kaltetutako biltegi bat leheneratzeko errazagoa izan dadin, bertsio berriak falta diren objektuak gordetzeko aukera eskaintzen du "--expire-to" aukera gehituz "git repack" komandoari, eta horri esker, fitxategi bat zehaztu dezakezu kanpoko bat sortzeko. ezabatutako objektu guztien kopia. Adibidez, azken 5 minutuetan aldatu ez diren objektuak backup.git fitxategian gordetzeko, komandoa erabil dezakezu: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -to=../backup.git

  • Nabarmen handitu (% 70 arte) "git grep -cached" eragiketaren abiadura klonazio partziala erabiltzen duten eremuetan (sparse-checkout) eta indize partzialak dauden eremuetan (sparse index) bilatzean. Aurretik, β€œ-cached” aukera zehaztean, bilaketa indize arruntean egiten zen lehenik, eta partzialetan gero, eta horrek atzerapen nabariak ekarri zituen biltegi handietan bilatzean.
  • Zerbitzariak objektu berrien koherentziaren egiaztapena bizkortu egin da biltegian jarri aurretik "git push" eragiketa bitartean. Egiaztatzean soilik deklaratutako estekak kontabilizatuz, 7 milioi esteka dituen proba-biltegi batean, horietatik % 3 soilik push eragiketak estalita, sartutako optimizazioek egiaztapen-denbora 4.5 aldiz murriztea ahalbidetu zuten.
  • Kode osoko balizko gainezkatzeetatik babesteko, "git apply" komandoak prozesatu daitezkeen adabakien gehienezko tamaina mugatzen du. Adabakiaren tamaina 1 GB baino handiagoa bada, errore bat bistaratuko da.
  • Balizko ahultasunetatik babesteko, aldaketak egin dira beharrezkoa ez den informazioa garbitzeko ezarritako goiburuetatik h2h3 modulua GIT_TRACE_CURL=1 edo GIT_CURL_VERBOSE=1 aukerarekin HTTP/2rekin batera erabiltzean.
  • Beste adar baterako esteka sinbolikoa den adar batean egiaztapena egiten duzunean, "git symbolic-ref HEAD" komandoak orain xede adarraren izena bistaratzen du esteka sinbolikoaren izena baino.
  • @{-1} argumenturako laguntza gehitu zaio β€œ--edit-description” aukerari (β€œgit branch β€”edit-description @{-1}”) aurreko adar baten deskribapena editatzeko.
  • "git merge-tree --stdin" komandoa gehitu da sarrera estandarraren bidez aukeren zerrenda bat pasatzeko.
  • Sareko fitxategi-sistemetan, fitxategi-sistemako aldaketak kontrolatzen dituen fsmonitor kudeatzailea desgaituta dago lehenespenez.

Iturria: opennet.ru

Gehitu iruzkin berria