Efter tre mÄnaders utveckling har version 2.46 av det distribuerade versionshanteringssystemet Git publicerats. Git Àr ett av de mest populÀra, tillförlitliga och högpresterande versionshanteringssystemen som erbjuder flexibla verktyg för icke-linjÀr utveckling, baserat pÄ grenhantering och sammanslagning av grenar. För att sÀkerstÀlla integriteten i historiken och motstÄndskraften mot Àndringar "bakÄt i tiden" anvÀnds implicit hashning av hela den tidigare historiken i varje commit, och det Àr ocksÄ möjligt att verifiera digitala signaturer frÄn utvecklare för specifika etiketter och commits. Koden för Git distribueras under licensen GPLv2+.
JÀmfört med den föregÄende versionen har den nya versionen antagit 746 Àndringar, som förberedts i samarbete med 96 utvecklare, varav 31 deltar i utvecklingen för första gÄngen. Huvudnyheterna Àr:
- Stöd för en ny typ av bitmappar â "pseudo-merge reachability bitmap" â har lagts till. I dessa lagras data om objekt som Ă€r relaterade till commits inte kopplade till varje enskild commit utan kopplade till flera commits samtidigt, till skillnad frĂ„n strukturen "reachability bitmap". Denna organisation gör det möjligt att anvĂ€nda en bitmap nĂ€r man bestĂ€mmer objekt för commits i olika grenar, vilket i stora förrĂ„d möjliggör att undvika skapandet av ett stort antal separata bitmappar och avsevĂ€rt snabba upp sökningen av objekt för att faststĂ€lla vilka objekt som ska skickas till klienten vid utförande av sĂ„dana operationer som "git fetch", "git rev-list" och "git clone". För att aktivera den nya typen av bitmappar och definiera logiken för valet och anvĂ€ndningen av dem föreslĂ„s en serie instĂ€llningar "bitmapPseudoMerge": git config bitmapPseudoMerge.all.pattern ârefs\/(heads|tags)\/' git config bitmapPseudoMerge.all.threshold now git config bitmapPseudoMerge.all.stableThreshold never git repack -adb
- Ett nytt kommandoradsgrĂ€nssnitt för kommandot «git config» har införts, dĂ€r istĂ€llet för spridda alternativ för att visa, döpa om och ta bort instĂ€llningar och sektioner, sĂ„som «âget», «âget-all», «âunset» och «âremove-section», föreslĂ„s en uppsĂ€ttning separata subkommandon. Till exempel kan man nu anvĂ€nda kommandot «git config list» för att visa alla instĂ€llningar i ett repository, och för att visa innehĂ„llet för en specifik parameter â kommandot «git config get ». För att ytterligare filtrera resultaten med alternativet «âregexp» kan man ange en filter baserat pĂ„ ett reguljĂ€rt uttryck.
- Det har lagts till stöd för nya fÀlten «authtype» och «credential» i protokollet «credential helper», som anvÀnds för att överföra autentiseringsuppgifter vid Ätkomst till repositories med begrÀnsad Ätkomst. Detta möjliggör skapandet av hjÀlpmedel för HTTP-autentisering som inte bara begrÀnsar sig till inloggning och lösenord, till exempel vid anvÀndning av Bearer Token i OAuth 2.0. Tidigare var man tvungen att ange kÀnslig information i klartext i parametern http.extraHeader för att arbeta med sÄdana typer av autentisering. Dessutom har protokollet fÄtt möjlighet att spara tillstÄndet för varje hjÀlpmedel för autentisering för att stödja flerstegsmetoder för autentisering som anvÀnds i protokoll som NTLM och Kerberos.
- Utvecklingen av den experimentella backend «reftable» för effektiv lagring av referenser till grenar och taggar i repositoryn har fortsatt. Denna backend anvĂ€nder ett blocklagringssystem som appliceras av projektet JGit och Ă€r optimerad för att lagra ett mycket stort antal referenser (traditionella lagringsformat för referenser leder till betydande overhead i repositories med ett stort antal referenser pĂ„ grund av lagringen av ett mycket stort antal filer i en enda katalog i fallet med lagring av referenser i katalogen $GIT_DIR/refs eller behovet av att skriva om en stor fil vid varje uppdatering i fallet med lagring av referenser i filen $GIT_DIR/packed_refs). I den nya versionen har kommandot «git refs migrate âref-format=reftable» lagts till för att konvertera befintliga repositories till backend «reftable» (tidigare aktiverades backend endast vid initiering av repositoryn).
- I git-teamet har en alternativ "--no-advice" lagts till, som stÀnger av alla meddelanden med rekommendationer och tips, vilket kan vara anvÀndbart för att förhindra att loggen fylls med onödig information vid automatiserade anrop av git.
- ĂversĂ€ttningsprocessen för vissa kontroller frĂ„n testsetet till anvĂ€ndning av enhetstester har pĂ„börjats, vilket kommer att förenkla testning av lĂ„g-nivĂ„komponenter och öka effektiviteten i testprocessen pĂ„ Windows-plattformen, dĂ€r det uppstĂ„r stora overheadkostnader vid körning av mĂ„nga processer under utförandet av tester som implementerats som shell-skript.
- Koden för att tolka fÀrginstÀllningar har lagts till möjligheten att anvÀnda formatet "#RGB" utöver "#RRGGBB".
KĂ€lla: opennet.ru
