Release av versionshanteringssystemet Git 2.36

Efter tre månaders utveckling har en version av det distribuerade systemet för hantering av källkodstekster Git 2.36 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 baserad på gren- och sammanslagningsprinciper. För att säkerställa integriteten av historien och motståndskraften mot retroaktiva förändringar används implicit hashing av hela den tidigare historien i varje commit; det är också möjligt att verifiera digitala signaturer av utvecklare för specifika taggar och commits.

Jämfört med den föregående versionen har den nya versionen antagit 717 förändringar som förberetts med hjälp av 96 utvecklare, varav 26 deltog i utvecklingen för första gången. De viktigaste nyheterna är:

  • I kommandona "git log" och "git show" har en ny parameter "—remerge-diff" lagts till, vilket gör det möjligt att visa skillnaderna mellan det gemensamma resultatet av sammanslagningen och de faktiska data som återspeglas i commit efter att kommandot "merge" har utförts, vilket gör att man tydligt kan bedöma förändringarna som gjorts till följd av konfliktlösningen vid sammanslagningen. Det vanliga kommandot "git show" separerar olika konfliktlösningar med indrag, vilket komplicerar förståelsen av förändringarna. Till exempel visar raderna "+/-" utan indrag den senaste konfliktlösningen relaterad till namnbytet från den första grenen sha1 till oid i kommentaren, medan "+/-" med indrag visar den ursprungliga konfliktlösningen orsakad av att ett extra argument i funktionen dwim_ref() har tillkommit i den andra grenen.
    Release av versionshanteringssystemet Git 2.36

    Vid användning av alternativet "—remerge-diff" separeras inte skillnaderna mellan konfliktlösningar för varje föräldergren, utan viser gemensamma skillnader mellan filen som har sammanslagningskonflikter och filen där konflikterna har lösts.

    Release av versionshanteringssystemet Git 2.36
  • Flexibiliteten att konfigurera beteendet för att återställa disk-cache genom att anropa fsync()-funktionen har ökat. Den tidigare tillgängliga parametern core.fsyncObjectFiles har delats upp i två konfigurationsvariabler, core.fsync och core.fsyncMethod, vilket möjliggör att tillämpa fsync inte bara på objektfiler (.git/objects) utan också på andra git-strukturer som referenser (.git/refs), reflog och packfiler.

    Genom variabeln core.fsync kan du ange en lista över interna Git-strukturer som ska anropas för fsync efter skrivoperationen. Variabeln core.fsyncMethod gör det möjligt att välja metod för att tömma cachen, till exempel kan du välja fsync för att använda det motsvarande systemanropet eller ange writeout-only för att tillämpa fördröjd skrivning (pagecache writeback).

  • För att skydda mot sårbarheter som manipulerar genom att substituera andra användares .git-kataloger i delade partitioner, har ägarkontrollen av repositoriet stärkts. Några git-kommandon får nu endast utföras i sina egna " .git ". Om katalogen med repositoriet tillhör en annan användare, kommer ett felmeddelande att visas som standard. Detta beteende kan inaktiveras genom att justera inställningen safe.directory.
  • I kommandot "git cat-file", som är avsett att visa det ursprungliga innehållet i Git-objekt, har en option "—batch-command" lagts till, vilket kompletterar de tidigare tillgängliga kommandona "—batch" och "—batch-check" med möjligheten till adaptiv typval av output genom att ange "contents " för att visa innehållet eller "info " för att visa information om objektet. Dessutom stöds kommandot "flush" för att tömma outputbufferten.
  • I kommandot "git ls-tree", som används för att skapa en lista över innehållet i objektträd, har en option "—oid-only" ("—object-only") lagts till, på liknande sätt som "—name-only", vilket bara visar objektens identifierare för att förenkla utkallningar från skript. En option "—format" har också implementerats för att definiera ett eget outputformat, genom att kombinera information om läge, typ, namn och storlek.
  • I kommandot "git bisect run" har det implementerats för att avgöra avsaknad av kommandot för körningsstatus i skript och för att i detta fall visa fel med koderna 126 eller 127 (tidigare, om skriptet inte kunde startas markerades alla revisioner som problematiska).
  • I kommandot "git fetch" har en option "—refetch" lagts till för att hämta alla objekt utan att informera den andra sidan om innehållet som redan finns på det lokala systemet. Detta beteende kan vara användbart för att återställa tillstånd efter fel, när det inte finns någon säkerhet om integriteten av de lokala uppgifterna.
  • Kommandona «git update-index», «git checkout-index», «git read-tree» och «git clean» har lagts till stöd för sparade index (sparse index), vilket möjliggör förbättrad prestanda och utrymmesbesparing i arkiv där delvisa kloningar (sparse-checkout) utförs.
  • Beteendet hos kommandot «git clone —filter=… —recurse-submodules» har ändrats, vilket nu leder till delvis kloning av submoduler (tidigare tillämpades filtret endast på huvudinnehållet, och submoduler klonades helt utan att ta hänsyn till filtret).
  • Kommandot «git bundle» har fått stöd för att ange filter för selektiv placering av innehåll i likhet med delvisa kloningsoperationer.
  • Ett nytt alternativ «—recurse-submodules» har lagts till kommandot «git branch» för rekursiv traversering av submoduler.
  • I userdiff föreslås en ny hanterare för språket Kotlin.

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