UtgÄvan av versionshanteringssystemet Git 2.37

Den nya versionen av det distribuerade systemet för hantering av kÀllkod Git 2.37 har presenterats. Git Àr ett av de mest populÀra, pÄlitliga och högpresterande versionshanteringssystemen, som erbjuder flexibla verktyg för icke-linjÀr utveckling, baserade pÄ förgrening och sammanslagning av grenar. För att sÀkerstÀlla integriteten i historiken och motstÄndskraften mot "backdating" anvÀnds implicit hashing av hela den tidigare historiken i varje commit, och det Àr ocksÄ möjligt att verifiera digitala signaturer frÄn utvecklare av specifika taggar och commits.

JÀmfört med föregÄende version har den nya versionen antagit 395 Àndringar, förberedda med deltagande av 75 utvecklare, varav 20 deltog i utvecklingen för första gÄngen. De viktigaste nyheterna:

  • Mekanismen för sparsamma index har fĂ€rdigstĂ€llts för allmĂ€n anvĂ€ndning, vilket omfattar endast en del av repositoriet. Sparsamma index gör det möjligt att förbĂ€ttra prestanda och spara utrymme i repositorier dĂ€r partiellt kloning (sparse-checkout) utförs eller dĂ€r man arbetar med en ofullstĂ€ndig kopia av repositoriet. I den nya versionen har arbetet med integration av sparsamma index i kommandona „git show“, „git sparse-checkout“ och „git stash“ slutförts. Den mest mĂ€rkbara prestandavinsten frĂ„n att anvĂ€nda sparsamma index observeras i kommandot „git stash“, vars körhastighet i vissa situationer har ökat med 80%.
  • En ny mekanism för "cruft packs" har implementerats för att packa ned obekanta objekt (unreachable) som inte har nĂ„gra referenser i förrĂ„det (inga grenar eller taggar pekar pĂ„ dem). Obekanta objekt tas bort av skrĂ€pmaskinen, men förblir i förrĂ„det under en viss tid före borttagning för att undvika kapplöpningar. För att spĂ„ra tiden som obekanta objekt finns mĂ„ste de kopplas till etiketter med tidsstĂ€mplar för Ă€ndringar av dessa objekt, vilket förhindrar att de lagras i en och samma packfil, dĂ€r alla objekt har samma Ă€ndringstid. Den tidigare metoden att spara varje objekt i en separat fil ledde till problem nĂ€r det fanns ett stort antal nya obekanta objekt som Ă€nnu inte kunde tas bort. Den föreslagna mekanismen "cruft packs" gör det möjligt att lagra alla obekanta objekt i en packfil, medan data om Ă€ndringstiden för varje objekt registreras i en separat tabell, som lagras i en fil med tillĂ€gget ".mtimes".
  • För Windows och macOS har en inbyggd mekanism för att spĂ„ra förĂ€ndringar i filsystemet implementerats, vilket gör det möjligt att undvika att söka igenom hela arbetskatalogen vid sĂ„dana operationer som "git status". Tidigare kunde externa verktyg för att spĂ„ra förĂ€ndringar i filsystemet, som Watchman, kopplas in via hookar för att övervaka förĂ€ndringar, men detta krĂ€vde installation av ytterligare program och instĂ€llningar. Nu Ă€r denna funktionalitet inbyggd och kan aktiveras med kommandot "git config core.fsmonitor true".
  • I kommandot "git sparse-checkout" har stödet för det alternativa lĂ€get "—cone" för metoddefinition av mallar för partiell kloning förklarats som förĂ„ldrat, vilket tillĂ„ter att vid definiering av den del av förrĂ„det som omfattas av kloningen lista enskilda filer med hjĂ€lp av syntaxen för ".gitignore", vilket förhindrar anvĂ€ndning av partiella index för optimering.
  • Flexibiliteten för att konfigurera fsync() för att spara Ă€ndringar till disk har ökat. Parametern "core.fsyncMethod" har fĂ„tt stöd för synkroniseringsstrategin "batch", vilket möjliggör snabbare skrivning av ett stort antal separata filer genom att ackumulera Ă€ndringar i cache för Ă„terkoppling, som skrivs tillbaka med ett enda fsync()-anrop. Testet som genomfördes, dĂ€r 500 filer lades till med kommandot "git add", slutfördes pĂ„ 0,15 sekunder med den nya instĂ€llningen, medan anropet av fsync() för varje fil tog 1,88 sekunder och utan att anvĂ€nda fsync tog det 0,06 sekunder.
  • Till kommandona för att navigera i grenar, som "git log" och "git rev-list", har en ny parameter lagts till: "--since-as-filter=X", som gör det möjligt att filtrera bort information om kommittĂ©er vars skapelsedatum Ă€r Ă€ldre Ă€n "X". Till skillnad frĂ„n parametern "--since" har det nya kommandot implementerats som ett filter som inte stoppar iterationen efter den första kommittĂ©n som Ă€r Ă€ldre Ă€n den angivna tiden.
  • Vid anvĂ€ndning av kommandot "git remote" med flaggan "-v" visas nu information om partiella kloner av repot.
  • InstĂ€llningen "transfer.credentialsInUrl" har lagts till, som kan anta vĂ€rdena "warn", "die" och "allow". Om det anges anvĂ€ndaruppgifter i klartext i parametern "remote..url", kommer försök att utföra operationer som "fetch" eller "push" att misslyckas med ett fel om instĂ€llningen "transfer.credentialsInUrl" Ă€r "die", eller ge en varning om den Ă€r "warn".
  • Den nya implementationen av det interaktiva lĂ€get för kommandot "git add -i", som har skrivits om frĂ„n Perl till C, aktiveras som standard.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster