Utgivning av versionskontrollsystemet Git 2.48

Publicerad utgÄva av det distribuerade versionshanteringssystemet Git 2.48. Git kÀnnetecknas av hög prestanda och erbjuder verktyg för icke-linjÀr utveckling baserad pÄ grenhantering och sammanslagningar. För att sÀkerstÀlla integriteten i historiken och motstÄndskraft mot 'bakÄtstrÀvande' förÀndringar anvÀnds implicit hashning av hela föregÄende historik i varje commit samt digitala signaturer frÄn utvecklarna för sÀrskilda taggar och commits. Git-koden distribueras under GPLv2+-licensen.

JÀmfört med föregÄende version har den nya versionen tagit emot 605 Àndringar, förberedda med deltagande av 93 utvecklare, varav 35 deltar i utvecklingen för första gÄngen. Huvudnyheterna Àr:

  • Möjligheten att bygga med byggsystemet Meson har införts, förutom GNU Make och CMake. För att bygga Git kan man nu anvĂ€nda kommandot „meson setup build && ninja -C build“. Det noteras att Makefile som anvĂ€nds med GNU Make har vuxit till 3887 rader och inte Ă€r sĂ„ enkel som man skulle önska. Verktyget Meson förenklar arbetet med byggsystemet, Ă€r bekvĂ€mt för plattformsoberoende byggen och gör byggen mer tillgĂ€ngliga för nybörjare eller utvecklare utan erfarenhet av Make-verktyget. Det finns inga planer pĂ„ att avbryta stödet för Make och CMake inom överskĂ„dlig framtid.
  • Byggalternativ har lagts till, vilket möjliggör anvĂ€ndning av alternativa implementationer av SHA-1-hash vid berĂ€kning av checksummer som anvĂ€nds för att verifiera integriteten av datablokkar i packfiler. Prestanda för berĂ€kning av checksummer Ă€r mycket viktig, till exempel spenderas cirka 78% av processorens tid pĂ„ deras berĂ€kning nĂ€r ett repository med Linux-kĂ€rnan klonas. Den standardanvĂ€nda implementationen inkluderar ytterligare kollisionskontroller och skydd mot attacker pĂ„ SHA-1, sĂ„som SHAttered och Shambles. SĂ„dant skydd, som konsumerar extra resurser, Ă€r meningsfullt endast vid anvĂ€ndning av SHA-1 för kryptografiska Ă€ndamĂ„l och Ă€r vĂ€rdelöst vid verifiering av integriteten av indexdata.

    För att bygga Git med en snabbare implementation av SHA-1, som inte Ă€r lĂ€mplig för kryptosystem, föreslĂ„s en rad alternativ *_UNSAFE, till exempel „OPENSSL_SHA1_UNSAFE“. PĂ„ GitHub har bygget med förenklad SHA-1 möjliggjort en ökning av prestandan för datahĂ€mtning och kloning med 10-13%.

  • Möjligheten att anvĂ€nda alternativet "--remerge-diff" i kommandot "range-diff" har lagts till, vilket gör det möjligt att visa skillnader mellan det sammanlagda resultatet av sammanslagningen och de faktiska data som Ă„terspeglas i commit efter att kommandot "merge" har bearbetats. NĂ€r alternativet "--remerge-diff" anvĂ€nds, delas inte skillnaderna mellan konfliktlösningar för varje förĂ€ldergren, utan visar de gemensamma skillnaderna mellan filen med sammanslagningskonflikter och filen dĂ€r konflikterna har lösts. I sammanhanget av kommandot "range-diff" kan det nya alternativet vara anvĂ€ndbart för att jĂ€mföra uppsĂ€ttningar av commits efter att sekvensen av commits har flyttats med kommandot "rebase" med alternativet "--rebase-merges".
  • Möjligheten att köra en Git-testsvit med aktiverad minneslĂ€ckagedetektionslĂ€ge har lagts till. Eftersom git tillhandahĂ„ller verktyg som avslutar arbetet efter att den anropade funktionen har körts, har minneslĂ€ckor tidigare inte betraktats som ett stort problem. Behovet av att helt eliminera minneslĂ€ckor blev aktuellt efter att arbetet pĂ„börjades med att separera intern funktionalitet till ett bibliotek som kan anvĂ€ndas i lĂ„ngvariga processer.
  • Listan över förĂ„ldrade lĂ€gen och funktioner som planeras att tas bort i framtiden har börjat bildas. Det antas att borttagandet av förĂ„ldrad funktionalitet kommer att ske i Git version 3.0, som kommer att innehĂ„lla Ă€ndringar som bryter bakĂ„tkompatibiliteten.
  • Optimeringen av kommandot "git for-each-ref" som skriver ut listan över referenser i ett repository har fortsatt. Optimeringen, som kombinerar hanterare för filtrering av referenser och formatering av utdata, tillĂ€mpas nu inte bara för osorterad utdata utan Ă€ven nĂ€r alternativet "--sort" anges.
  • Implementeringen av baksidan "reftable" har förbĂ€ttrats med blocklagring för effektiv lagring i lagret av lĂ€nkar till grenar och taggar. Reftable möjliggör avsevĂ€rt snabbare sökning, lĂ€sning och skrivning i repository med ett mycket stort antal lĂ€nkar. I den nya versionen har anvĂ€ndningen av vissa hjĂ€lpbibliotek för att utesluta libgit som en byggberoende upphört. Adaptiv hantering av fel som returneras av minnesallokeringsfunktionerna har implementerats (brist pĂ„ minne leder nu inte till en krasch). Operationerna för att skapa lĂ€nkar har blivit snabbare och minnesanvĂ€ndningen har minskat.
  • I implementeringen av partiell kloning har problem som ledde till oĂ€ndliga loopar och korruption av repository efter körning av kommandot "git gc" lösts.
  • NĂ€r kommandot "git fetch " utförs och "refs/remotes//HEAD" saknas pĂ„ det lokala systemet men det finns en gren pĂ„ den andra sidan som HEAD pekar pĂ„, kommer "refs/remotes//HEAD" nu att omdirigeras till denna gren. För att hantera synkronisering av "refs/remotes//HEAD" med vĂ€rdet HEAD pĂ„ den andra sidan har instĂ€llningen remote..followRemoteHEAD lagts till.
  • InstĂ€llningen "remote..serverOption" har lagts till, som liknar alternativet för kommandoraden "--serverOption=".
  • I kommandot "git rebase --rebase-merges" har anvĂ€ndning av grenarnas namn som etiketter sĂ€kerstĂ€llts i möjligaste mĂ„n.
  • Flaggan '-e' har lagts till i kommandona 'git notes add' och 'git notes append', vilket öppnar noteringen i en extern textredigerare som anges genom miljövariabeln GIT_EDITOR.
  • Kompatibiliteten med GCC 15 och standarden C23 har förbĂ€ttrats.
  • Stödet för Ă€ldre versioner av libcURL och Perl har upphört.

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