Utgivning av kÀllkodshanteringssystemet Git 2.54

UtgÄvan av det distribuerade systemet för hantering av kÀllkoder Git 2.54 har presenterats. Git kÀnnetecknas av hög prestanda och erbjuder verktyg för icke-linjÀr utveckling som baseras pÄ gren- och sammanslagningsfunktioner. För att sÀkerstÀlla integriteten i historiken och motstÄndskraft mot "bakÄtriktade" Àndringar anvÀnds implicit hashning av hela den tidigare historiken i varje commit, samt verifiering med digitala signaturer av utvecklare för specifika taggar och commits. Git-koden distribueras under GPLv2+-licensen.

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

  • Kommandot "git history" har implementerats, vilket erbjuder experimentella funktioner för att skriva om historiken av Ă€ndringar, enklare och sĂ€krare att anvĂ€nda Ă€n att rebasera commits med kommandot "git rebase". TvĂ„ operationer erbjuds:
    • "git history reword " för att skriva om meddelandet i den angivna commiten utan att Ă€ndra arbetskatalogen och indexet (förutom anmĂ€rkningen, som förblir oförĂ€ndrad). Till exempel för att rĂ€tta till ett stavfel.
    • "git history split " för att interaktivt dela den angivna commiten i tvĂ„ olika commits med flytt av valda delar frĂ„n den ursprungliga commiten till en extra commit.

    I framtida utgÄvor 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Ä commitar och "git history squash" för att slÄ samman commits.

  • En ny metod för att definiera handlare (hook) i konfigurationsfiler har implementerats. IstĂ€llet för att placera skript med handlare i katalogen «.git/hooks» i varje repository, kan kommandon för att kalla handlare nu definieras direkt i konfigurationsfiler. InstĂ€llningar kan kopplas till repositoryn eller anges i konfigurationsfiler som gĂ€ller för alla repositories (/etc/gitconfig) eller anvĂ€ndarens repositories (~/.gitconfig). Det Ă€r möjligt att koppla flera handlare till samma hĂ€ndelse. Skript frĂ„n «.git/hooks» fortsĂ€tter fortfarande att köras, men aktiveras efter handlare frĂ„n konfigurationsfiler. För att se listan över handlare ska kommandot «git hook list» anvĂ€ndas, och för att selektivt inaktivera anropet av en handlare — 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» anvĂ€nds som standard strategin «geometric» («git config set maintenance.strategy geometric»), vilket minskar underhĂ„llstiden för stora monorepositories. JĂ€mfört med den tidigare strategin som anvĂ€nde logik som i kommandot «git gc», undviker den nya strategin att packa om alla objekt och utesluter överdrivet resurskrĂ€vande operationer, sĂ„som att sammanfoga alla pack-filer (dĂ€r det Ă€r möjligt görs sammanslagningen i delar och utan att stĂ€da upp borttagna objekt).
  • Objekt databasen (ODB) och tillhörande API:er har övergĂ„tt till en ny arkitektur baserad pĂ„ anvĂ€ndning av plugin-bakĂ€ndar. Den genomförda omstruktureringen abstraherar lagringsformatet för objekt och kommer i framtiden att möjliggöra funktioner sĂ„som alternativa bakĂ€ndar och objektformat, till exempel för mer effektiv lagring av stora binĂ€rfiler eller för att optimera driften av stora git-hosting-tjĂ€nster.
  • I kommandot "git repo structure" visas information om struktur av repositoriet, inklusive den totala storleken och de största objekten av varje typ, vilket gör det möjligt att uppskatta storleken utan att anvĂ€nda verktyget git-sizer. $ git repo structure 
 | * 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", som anvĂ€nds istĂ€llet för "git rebase" för att Ă„terskapa historik pĂ„ servern utan arbetskatalog, ingĂ„r som standard atomĂ€r uppdatering av referenser (istĂ€llet för att visa en lista av kommandon update-ref för manuell körning), en option "—revert" för att Ă„terstĂ€lla Ă€ndringar frĂ„n en serie commits, och möjligheten att Ă„terskapa historiken ner till rotcommit.
  • I "git rev-list" och liknande kommandon har optionen "—maximal-only" lagts till för att visa endast commits som inte kan nĂ„s av andra commits.
  • I kommandot "git repo info" har optionen "—keys" lagts till för att visa en lista över alla kĂ€nda nycklar.
  • I kommandot "git add -p" under navigering mellan kodblock med tangenterna "J" och "K" har mĂ€rkning för redan godkĂ€nda och hoppade block införts. En option "—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.
  • WebbgrĂ€nssnittet "gitweb" har optimerats för att fungera med mobila enheter.
  • I kommandot "git apply —directory" har normalisering av filvĂ€gar, sĂ„som ".\/un\/..\/normalized\/path", sĂ€kerstĂ€llts innan anvĂ€ndning.
  • Möjligheten att lĂ€gga till egna undermmand Ă€r dokumenterad genom att placera filer "git-<cmd>" i katalogen med körbara filer.
  • I kommandot "git send-email" har stöd för klientcertifikat lagts till.
  • För kommandot "git status" har instĂ€llningen "status.compareBranches" genomförts, dĂ€r man kan ange grenar för att jĂ€mföra den aktuella grenen. [status] compareBranches = @{upstream} @{push}
  • I "git rebase" har optionen "—trailer" lagts till för att förenkla tillĂ€gg av metadata till alla commits. git rebase —trailer "Reviewed-by: Test <test@example.com>"
  • Kommandon "git fast-import" har fĂ„tt möjligheten att ersĂ€tta signaturer för commits som blivit ogiltiga efter import.
  • Stödet för komprimering (compaction) av flerpaketsindex MIDX (multi-pack index) har lagts till, dĂ€r smĂ„ lager av MIDX-index som innehĂ„ller information om tillgĂ€ngliga objekt och relaterade bitmap-filer kombineras, vilket minskar antalet ackumulerade lager i gamla repository.
  • I kommandot "git backfill" har möjligheten att ange revisioner (commit-intervall) och sökvĂ€gsmasker (pathspec) för att begrĂ€nsa de laddade delarna av historik implementerats. 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 namnen pĂ„ kommandots aliaser som anges i konfigurationsfilen tillĂ„ts. [alias "fetch"] 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 anrop av repository via HTTP har hantering av felkod 429 (För mĂ„nga förfrĂ„gningar) införts. FörfrĂ„gningar som avslutats med detta fel betraktas nu inte som ett fatalt problem utan ett temporĂ€rt fel, dĂ€r operationen bör upprepas efter en tid. Fördröjningen innan Ă„terförsök anges genom alternativet "http.retryAfter", antalet försök - "http.maxRetries", vĂ€ntetiden - "http.maxRetryTime".

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