SlÀpp av det distribuerade versionshanteringssystemet Git 2.26

TillgÀnglig utgivning av det distribuerade systemet för hantering av kÀllkod Git 2.26.0. Git Àr ett av de mest populÀra, pÄlitliga och högpresterande versionshanteringssystemen som erbjuder flexibla medel för icke-linjÀr utveckling, baserat pÄ grenning och sammanslagning. För att sÀkerstÀlla integriteten i historiken och motstÄndskraften mot bakÄtriktade Àndringar anvÀnds implicita hashning av hela den tidigare historien i varje commit, och det Àr ocksÄ möjligt att bekrÀfta med digitala signaturer av utvecklare för individuella taggar och commits.

JÀmfört med den tidigare versionen har den nya versionen introducerat 504 förÀndringar, förberedda med deltagande av 64 utvecklare, dÀribland 12 som deltog i utvecklingen för första gÄngen. Huvud nyheter:

  • ÖvergĂ„ngen har gjorts som standard till den andra versionen av Git-kommunikationsprotokollet, vilket anvĂ€nds vid fjĂ€rranslutning av klienten till Git-servern. Den andra versionen av protokollet Ă€r anmĂ€rkningsvĂ€rd för att erbjuda möjlighet till filtrering av grenar och taggar pĂ„ serversidan med en förkortad lista av referenser som skickas till klienten. Tidigare vid utförande av vilken kommandon som helst skickades alltid hela listan av referenser i hela lagret till klienten, Ă€ven nĂ€r klienten endast uppdaterade en gren eller kontrollerade aktuell lĂ€ge av sin kopia av lagret. En annan pĂ„fallande nyhet Ă€r möjligheten att lĂ€gga till nya funktioner i protokollet i takt med den nya funktionaliteten i verktygssetet. Klientens kod förblir kompatibel med det gamla protokollet och kan fortsĂ€tta att fungera bĂ„de med nya och gamla servrar, genom att automatiskt Ă„tergĂ„ till den första versionen om servern inte stöder den andra.
  • Till kommandot "git config" har en ny parameter "—show-scope" lagts till för att förenkla identifieringen av var vissa instĂ€llningar definieras. Git lĂ„ter dig definiera instĂ€llningar pĂ„ olika platser: i lagret (.git/info/config), i anvĂ€ndarkatalogen (~/.gitconfig), i den globala konfigurationsfilen (/etc/gitconfig), samt via kommandoradsalternativ och miljövariabler. Det kan vara ganska svĂ„rt att lista ut exakt var en specifik instĂ€llning definieras nĂ€r du kör "git config". För att lösa detta problem fanns det tidigare alternativet "—show-origin", men det visar bara sökvĂ€gen till filen dĂ€r instĂ€llningen definierades, vilket Ă€r anvĂ€ndbart om du vill redigera filen, men inte hjĂ€lper om du behöver Ă€ndra vĂ€rdet via "git config" med hjĂ€lp av alternativen "—system", "—global" eller "—local". Den nya parametern "—show-scope" visar kontexten för definitionerna av variablerna och kan anvĂ€ndas tillsammans med "—show-origin":

    $ git —list —show-scope —show-origin
    global file:/home/user/.gitconfig diff.interhunkcontext=1
    global file:/home/user/.gitconfig push.default=current
    [
]
    local file:.git/config branch.master.remote=origin
    local file:.git/config branch.master.merge=refs/heads/master

    $ git config —show-scope —get-regexp ‘diff.*’
    global diff.statgraphwidth 35
    local diff.colormoved plain

    $ git config —global —unset diff.statgraphwidth

  • I bindningsinstĂ€llningarna autentiseringsuppgifter AnvĂ€ndning av masker i URL:er Ă€r tillĂ„ten. Eventuella HTTP-instĂ€llningar och autentiseringsuppgifter i Git kan stĂ€llas in bĂ„de för alla anslutningar (http.extraHeader, credential.helper) och för anslutningar kopplade till URL (credential.https://example.com.helper, credential.https://example.com.helper). Tidigare har anvĂ€ndning av masker som *.example.com endast varit tillĂ„ten för HTTP-instĂ€llningar, men inte för anslutning av autentiseringsuppgifter. I Git 2.26 har dessa skillnader Ă„tgĂ€rdats och till exempel kan man nu ange en anvĂ€ndarnamnbindning till alla underdomĂ€ner:

    [credential «https://*.example.com»]

    username = ttaylorr

  • Stödet för partiella kloningar (partial clones) har fortsatt att utvidgas, vilket möjliggör överföring av endast en del av data och arbete med en ofullstĂ€ndig kopia av förrĂ„det. I den nya versionen har ett nytt kommando "git sparse-checkout add" lagts till, vilket gör det möjligt att lĂ€gga till enskilda kataloger för att tillĂ€mpa "checkout"-operationen endast pĂ„ en del av arbetskatalogen, istĂ€llet för att lista alla sĂ„dana kataloger pĂ„ en gĂ„ng med kommandot "git sparse-checkout set" (man kan lĂ€gga till en katalog i taget, utan att behöva ange hela listan varje gĂ„ng).
    Till exempel, för att klona förrÄdet git/git utan att överföra blobs, begrÀnsande kontroll endast till rotkatalogen för arbetskopian och separat mÀrkning för att hÀmta katalogerna "t" och "Documentation", kan man ange:

    $ git clone —filter=blob:none —sparse git@github.com:git/git.git

    $ cd git
    $ git sparse-checkout init —cone

    $ git sparse-checkout add t
    
.
    $ git sparse-checkout add Documentation
    
.
    $ git sparse-checkout list
    Documentation
    t

  • Prestandan för kommandot "git grep", som anvĂ€nds för att söka bĂ„de i det aktuella innehĂ„llet i förrĂ„det och i historiska revisioner, har stĂ€rkt. För att pĂ„skynda sökningen har det varit möjligt att skanna innehĂ„llet i arbetskatalogen med hjĂ€lp av flera trĂ„dar ("git grep —threads"), men sökningen i historiska revisioner har varit en-trĂ„dad. Nu har denna begrĂ€nsning tagits bort genom att implementera möjligheten att parallellisera lĂ€sningar frĂ„n objektlagret. Som standard stĂ€lls antalet trĂ„dar in i enlighet med antalet CPU-kĂ€rnor, vilket i de flesta fall nu inte krĂ€ver att "—threads"-alternativet uttryckligen anges.
  • Stöd för autocompletion av inmatning av subkommandon, sökvĂ€gar, lĂ€nkar och andra argument för kommandot "git worktree" har lagts till, vilket gör att man kan arbeta med flera arbetskopior av förrĂ„det.
  • Stöd för klara fĂ€rger har lagts till, för vilka ANSI escape-sekvenser finns. Till exempel kan man i fĂ€rginstĂ€llningarna för syntaxmarkering "git config --color" eller "git diff --color-moved" ange "%C(brightblue)" för klarblĂ„.
  • En ny version av skriptet har lagts till fsmonitor-watchman, som möjliggör integration med mekanismen Facebook Watchman för att snabba upp spĂ„rningen av filĂ€ndringar och nya filer. Efter uppdateringen av git krĂ€vs en ersĂ€tta hook i förvaret.
  • Optimeringar för att snabba upp operationer med partiella kloningar (partial clones) har lagts till, relaterade till anvĂ€ndningen av bitkartor
    (bitmap machinery) för att undvika fullstĂ€ndig genomsökning av alla objekt under filtrering av responsen. Kontroll av blobs (—filter=blob:none och —filter=blob:limit=n) vid partiell kloning görs nu
    betydligt snabbare. GitHub har meddelat att de anvÀnder patchar med dessa optimeringar och experimentell support för partiell kloning.
  • Kommandot "git rebase" har övergĂ„tt till en annan backend som anvĂ€nder 'merge'-mekanismen som standard (tidigare anvĂ€ndes för "rebase -i") istĂ€llet för 'patch+apply'. I vissa avseenden skiljer sig backends, till exempel erbjuder den nya backenden att redigera commitmeddelandet efter att konflikten har lösts (git rebase --continue), medan den gamla helt enkelt anvĂ€nde det gamla meddelandet. För att Ă„tergĂ„ till det gamla beteendet kan man anvĂ€nda alternativet "--apply" eller stĂ€lla in konfigurationsvariabeln 'rebase.backend' till vĂ€rdet 'apply'.
  • Ett exempel pĂ„ en autentiseringsparameterhanterare som anges via .netrc har omformats för att vara anvĂ€ndbar direkt.
  • InstĂ€llningen gpg.minTrustLevel har lagts till för att stĂ€lla in minimi nivĂ„ av förtroende för olika element som utför kontroll av digitala signaturer.
  • Alternativet "--pathspec-from-file" har lagts till i "git rm" och "git stash".
  • Arbetet med att förbĂ€ttra testsviterna har fortsatt som förberedelse för övergĂ„ngen till hash-algoritmen SHA-2 istĂ€llet för SHA-1.

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