Den nya versionen av det distribuerade systemet för hantering av kÀllkod Git 2.38 har lanserats. Git Àr ett av de mest populÀra, pÄlitliga och högpresterande versionshanteringssystemen som erbjuder flexibla verktyg för icke-linjÀr utveckling, baserat pÄ förgrening och sammanslagning av grenar. För att sÀkerstÀlla integriteten i historiken och motstÄndskraft mot bakÄtgÄende Àndringar anvÀnds implicit hashning av hela tidigare historia i varje commit, och det Àr Àven möjligt att autentisera digitalt med utvecklarnas signaturer för vissa taggar och commits.
I jÀmförelse med föregÄende version har den nya versionen accepterat 699 Àndringar, som förberetts av 92 utvecklare, varav 24 deltog i utvecklingen för första gÄngen. Huvudsakliga nyheter:
- Den centrala komponenten inkluderar verktyget "scalar", utvecklat av Microsoft för hantering av stora arkiv. Verktyget var ursprungligen skrivet i C#, men en omarbetad version pÄ C har inkluderats i git. Det nya verktyget skiljer sig frÄn kommandot git genom att som standard inkludera ytterligare funktioner och instÀllningar som pÄverkar prestanda nÀr man arbetar med mycket stora arkiv. Till exempel, med anvÀndning av scalar tillÀmpas:
- Partiell kloning för arbete med en ofullstÀndig kopia av arkivet.
- Inbyggd mekanism för spÄrning av Àndringar i filsystemet (FSMonitor) som gör att man kan undvika att gÄ igenom hela arbetskatalogen.
- Index som omfattar objekt i olika pack-filer (multi-pack).
- Filer med commit-graph och index för commit-grafen som tillÀmpas för att optimera tillgÄngen till information om commits.
- Bakgrundsperiodiska uppgifter för att stödja den optimala strukturen av arkivet i bakgrunden, utan att blockera interaktiva sessioner (en gÄng i timmen utförs arbete med att proaktivt ladda ner fÀrska objekt frÄn det fjÀrranslutna arkivet och uppdatera filen med commit-grafen, och varje natt startas en process för att packa arkivet).
- LÀget "sparseCheckoutCone", som begrÀnsar de tillÄtna mönstren vid partiell kloning.
- Kommandot "git rebase" har fĂ„tt alternativet "âupdate-refs" för att uppdatera beroende grenar som överlappar med de flyttade grenarna, sĂ„ att man inte manuellt behöver utföra checkout pĂ„ varje beroende gren för att vĂ€xla till önskad commit.
- Kommandot «git rm» har fÄtt stöd för partiella index.
- Beteendet hos kommandot «git mv A B» har förbÀttrats vid flytt av fil frÄn arbetsomrÄdet med partiella index till ett yttre omrÄde dÀr detta lÀge inte tillÀmpas.
- Formatet för bitmap-filer har optimerats för arbete med stora repositoryn â en valfri indexeringstabell med en lista över valda commits och deras offsets har lagts till.
- En ny lÀge har implementerats i kommandot «git merge-tree», dÀr ett trÀd med resultatet av sammanslagningen berÀknas baserat pÄ de tvÄ angivna commits, som om historien för dessa commits hade slagits samman.
- InstÀllningen «safe.barerepository» har lagts till för att hantera möjligheten att placera bare-repositoryn (repositoryn utan arbetsomrÄde) inom andra git-repositoryn. Om instÀllt till «explicit» tillÄts arbete med bare-repositoryn som endast Àr placerade i rotkatalogen. För att kunna placera bare-repositoryn i undermappar bör vÀrdet «all» anvÀndas.
- Alternativet «-m» (»âmax-count») har lagts till kommandot «git grep», vilket Ă€r likvĂ€rdigt med samma alternativ i GNU grep och möjliggör begrĂ€nsning av antalet utdata-matchningar.
- Alternativet «âformat» har implementerats i kommandot «ls-files» för att styra de utdatafĂ€lt som visas (till exempel kan du inkludera namnet pĂ„ objektet, rĂ€ttigheterna osv.).
- I «git cat-file» har möjligheten att beakta kopplingar av författare till mejl adresser, angivna i mailmap-filen, lagts till vid visningen av objekts innehÄll.
KĂ€lla: opennet.ru
