För några dagar sedan tillkännagavs lanseringen av den nya versionen av Git 2.3 , ett av de mest populära, pålitliga och högpresterande versionshanteringssystemen, vilket tillhandahåller flexibla icke-linjära utvecklingsverktyg baserade på förgrening och sammanslagning.
Jämfört med den tidigare versionen antogs 679 ändringar i den nya versionen, som utarbetades med deltagande av 85 utvecklare , varav 23 deltog i utvecklingen för första gången.
Git 2.31 Viktiga nya funktioner
Den här nya versionen av Git 2.31 har lagt till kommandot "git maintenance" , vilket möjliggör periodiskt underhåll på system som inte stöder cron . Med det här nya kommandot kan du till exempel schemalägga att packningsprocessen för arkivet startar regelbundet, vilket eliminerar behovet av att vänta på att arkivlåset ska slutföras när packningen utförs automatiskt efter att flera kommandon har körts.
En annan anmärkningsvärd förändring är tillägget av stöd för att underhålla ett omvänt index på disk (revindex) för paketfiler. Git lagrar all data som objekt, vilka hålls i separata filer. För att förbättra effektiviteten i arbetet med arkivet är dessa objekt ytterligare organiserade i paketfiler, där informationen presenteras som en ström av objekt som följer på varandra.
För varje paketarkiv skapas en indexfil (.idx), vilket gör att objektidentifieraren kan användas för att snabbt bestämma offseten inom paketarkivet där objektet lagras. Det omvända indexet (.rev) som föreslås i Git 2.31 syftar till att optimera processen att bestämma en objektidentifierare från information om objektets plats inom ett paketarkiv.
Tidigare utfördes denna konvertering i farten under parsningen av en paketfil och lagrades endast i minnet, vilket inte tillät återanvändning av dessa index och krävde att indexet genererades varje gång. Operationen att bygga ett index reduceras till att konstruera en array av objektpositionspar och sortera dem efter position, vilket kan vara mycket tidskrävande för stora paketfiler.
Vidare kan vi se att prestandaoptimeringar baserade på utseendet på commit-graffilformatet har lagts till , vilket används för att optimera åtkomsten till information om commits, och ny data om antalet genererade commits, vilket kan användas för att påskynda ytterligare operationer med commits.
Dessutom har möjligheten att åsidosätta standardgrennamnet i nya repositorier (inställningen init.defaultBranch) lagts till. Vid åtkomst till externa repositorier försöker Git verifiera grenen som HEAD pekar på; det vill säga, om den externa servern använder "main"-grenen som standard, kommer "git clone"-operationen att försöka hitta "main" lokalt.
Andra anmärkningsvärda förändringar inkluderar:
- Alternativet "–diskanvändning". läggs till i kommandot "git rev-list". för att visa en sammanfattning av objektens storlek.
- Tog bort stöd för det utfasade reguljära uttrycksbiblioteket PCRE1.
- Förutsatt möjligheten att starkt förbjuda användningen av genvägar, agerar oberoende av hashalgoritmen. Förbudet aktiveras genom att sätta värdet "no" till parametern core.abbrev.
- Alternativet "–path-format" har lagts till kommandot "git rev-parse" för att explicit definiera utdata från relativa eller absoluta sökvägar.
- Bash autokompletterande skript gör det enkelt att lägga till regler för färdigställande för anpassade git-underkommandon.
- Lade till alternativet "–stdin" till kommandot "git bundle" för att läsa länkar från standardinmatningsströmmen.
- Alternativen “–left-only” och “–right-only” har lagts till i kommandot “git range-diff” för att endast visa en sida av det jämförda området.
- Lade till alternativet "–skip-to=" till kommandot "git difftool" för att återuppta en trasig session från en godtycklig väg.
- Uppförandekoden (Code of Conduct), som definierar de grundläggande principerna för att lösa konflikter mellan utvecklare, har uppdaterats till version 2.0 (tidigare användes version 1.4).
Slutligen, om du vill veta mer om det , kan du besöka följande länk.