Git 2.54

Git 2.54

Presenteras utgÄvan av det distribuerade systemet för hantering av kÀlltexter Git 2.54. Git kÀnnetecknas av hög prestanda och tillhandahÄller verktyg för icke-linjÀr utveckling baserade pÄ grening och sammanslagning av grenar. För att sÀkerstÀlla integriteten hos historien och motstÄndskraften mot förÀndringar "i efterhand" anvÀnds implicit hashning av hela den tidigare historien i varje commit samt verifiering med digitala signaturer av utvecklare för enskilda taggar och commits. Koden för Git sprids under GPLv2+.

JÀmfört med den tidigare versionen har den nya versionen antagit 770 Àndringar, förberedda av 137 utvecklare (66 deltog för första gÄngen i utvecklingen av Git).

Huvud nyheter:

  • Kommandot "git history" har implementerats, vilket ger experimentella möjligheter för att skriva om Ă€ndringshistoriken, enklare och sĂ€kerare att anvĂ€nda Ă€n att Ă„terbasera commits med kommandot git rebase. TvĂ„ operationer tillhandahĂ„lls:

    • git history reword för att skriva om meddelandet i den angivna commit utan att Ă€ndra arbetskatalogen och indexet (förutom noteringen, som förblir oförĂ€ndrad). Till exempel för att rĂ€tta till ett skrivfel.
    • git history split för interaktiv uppdelning av den angivna commit i tvĂ„ olika commits med flytt av valda delar frĂ„n den ursprungliga commit till en ytterligare commit.

    I framtida versioner förvÀntas ytterligare kommandon lÀggas till: git history fixup för att korrigera en commit, git history drop för att ta bort en commit, git history reorder för att Àndra ordningen pÄ commits och git history squash för att slÄ samman commits.

  • En ny metod för att definiera hanterare har implementerats (hook) i konfigurationsfiler. IstĂ€llet för att placera skript med hanterare i katalogen .git/hooks i varje repository kan kommandon för att anropa hanterarna nu stĂ€llas in direkt i konfigurationsfilerna. InstĂ€llningar kan knytas till repositoryn eller anges i konfigurationsfiler som gĂ€ller för alla repositorys (/etc/gitconfig) eller anvĂ€ndarens repository (~/.gitconfig). Det Ă€r möjligt att koppla flera hanterare till en hĂ€ndelse. Skript frĂ„n .git/hooks kommer fortfarande att anropas, men de körs efter hanterarna frĂ„n konfigurationsfilerna. För att visa listan över hanterare bör kommandot git hook list anvĂ€ndas, och för att selektivt inaktivera anrop av hanterare – instĂ€llningen hook..enabled = false:

[hook "linter"] event = pre-commit command = ~/bin/linter —cpp20 [hook "no-leaks"] event = pre-commit command = ~/bin/leak-detector $ git hook list pre-commit global linter ~/bin/linter —cpp20 local no-leaks ~/bin/leak-detector

  • I kommandot «git maintenance» Ă€r standardstrategin geometric (git config set maintenance.strategy geometric), vilket gör att underhĂ„llstiden för stora monorepositories minskar. JĂ€mfört med den tidigare strategin, som anvĂ€nde logik som i kommandot git gc, undviker den nya strategin att ompacka alla objekt och utesluter onödigt resurskrĂ€vande operationer, som att slĂ„ samman alla pack-filer (dĂ€r det Ă€r möjligt görs sammanslagning i delar och utan rensning av borttagna objekt).
  • Objektdatabasen (ODB) och relaterade API:er har översatts till en ny arkitektur baserad pĂ„ anvĂ€ndningen av pluggbara backend. Den genomförda omstruktureringen abstraherar lagringsformatet för objekt och gör det i framtiden möjligt att implementera funktioner som alternativa backends och objektformat, till exempel för mer effektiv lagring av stora binĂ€ra filer eller för att optimera arbetet med stora git-hosting.
  • I kommandot «git repo-struktur», som visar information om repository-strukturen, ger inte bara en total storlek utan visar ocksĂ„ de största objekten av varje typ, vilket gör att storhetsbedömningen kan genomföras utan att anvĂ€nda externa verktyg. git-sizer.

$ git repo struktur 
 | * Största objekt | | | * Commits | | | * Maximal storlek [1] | 17.23 KiB | | * Maximal förĂ€ldrar [2] | 10 | | * TrĂ€d | | | * Maximal storlek [3] | 58.85 KiB | | * Maximal poster [4] | 1.18 k | | * Blobs | | | * Maximal storlek [5] | 1019.51 KiB | | * Taggar | | | * Maximal storlek [6] | 7.13 KiB |

  • I kommandot «git replay», anvĂ€nds istĂ€llet för git rebase för att Ă„terskapa historik pĂ„ servern utan arbetskatalog, inkluderar som standard atomĂ€r uppdatering av referenser (istĂ€llet för att skriva ut en lista med kommandon update-ref för manuell utförande), implementerad alternativ —revert för att Ă„terstĂ€lla Ă€ndringar frĂ„n en rad commits, sĂ€kerstĂ€llt att resultatande tomma commits stryks och möjligheten att Ă„terskapa historik Ă€nda till rotcommit.
  • Vid «git rev-list» och liknande kommandon har tillagts ett alternativ —maximal-only för att endast visa commits som inte Ă€r tillgĂ€ngliga via andra commits.
  • I kommandot «git repo info» har alternativet —keys lagts till för att skriva ut en lista över alla kĂ€nda nycklar.
  • I kommandot «git add -p» vid navigering mellan kodblock med hjĂ€lp av tangenterna «J» och «K» sĂ€kerstĂ€lls markering av redan godkĂ€nda och förbisegna block. Alternativet —no-auto-advance har lagts till för att stĂ€nga av automatisk övergĂ„ng till nĂ€sta fil, sĂ„ att man kan Ă„tervĂ€nda till tidigare filer innan commit.
  • WebgrĂ€nssnittet «gitweb» har optimerats för mobilanvĂ€ndning.
  • I kommandot «git apply –directory» ger normalisering av filvĂ€gar, som .\/un\/..\/normalized\/path innan anvĂ€ndning.
  • Möjligheten att lĂ€gga till egna undermetoder har dokumenterats genom att placera filer git-<cmd> i katalogen med körbara filer.
  • I kommandot «git send-email» har lagt till stöd för klientcertifikat.
  • För kommandot «git status» har instĂ€llningen status.compareBranches implementerats, genom vilken man kan ange brancher som den aktuella branchen ska jĂ€mföras med:

[status] compareBranches = @{upstream} @{push}

  • Vid «git rebase» har alternativet —trailer lagts till för att förenkla tillĂ€gget av metadata till alla commits:

git rebase —trailer "Reviewed-by: Test <test@example.com>"`

  • I kommandot «git fast-import» har lagt till möjligheten att ersĂ€tta signaturer för commits som blivit ogiltiga efter import.
  • Stöd för sammanslagning (compaction) av flerpaketsindex MIDX (multi-pack index) har lagts till, dĂ€r smĂ„ MIDX-indexlager med information om objekts tillgĂ€nglighet samt relaterade bitmap-filer slĂ„s samman, vilket minskar antalet ackumulerade lager i etablerade arkiv.
  • I git backfill-teamet har möjligheten att ange revisioner (kommittĂ€ras) och sökvĂ€gsmasker (pathspec) för att begrĂ€nsa de delar av Ă€ndringshistoriken som laddas ner introducerats:

git backfill main~100..main git backfill — ‘*.c’

  • Alternativa former av kommandot git config list har lagts till – git config -l och git config —list.
  • AnvĂ€ndning av icke-ASCII-tecken i kommandots aliasnamn som anges i konfigurationsfilen har tillĂ„tits:

[alias "get"] command = fetch

  • Visningen av signaturer vars GPG-nycklar har löpt ut, men som var giltiga vid tidpunkten för kommittens signering, har Ă€ndrats. SĂ„dana signaturer visas nu som giltiga med en anmĂ€rkning om nyckelns utgĂ„ng (tidigare markerades de i röd fĂ€rg, vilket gav intryck av felaktighet).
  • Vid Ă„tkomst till arkiv via HTTP har hanteringen av felkod 429 (För mĂ„nga förfrĂ„gningar) sĂ€kerstĂ€llts. FörfrĂ„gningar som avslutas med denna typ av fel betraktas nu inte som ett fatalt problem, utan som ett tillfĂ€lligt fel som bör upprepas efter en tid. Fördröjningen före Ă„terförfrĂ„gan stĂ€lls in via alternativet http.retryAfter, antalet upprepningar – http.maxRetries, och vĂ€ntetiden – http.maxRetryTime.

KĂ€lla: linux.org.ru

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