Vydanie systému správy zdrojových textov Git 2.36

Po troch mesiacoch vývoja bol zverejnený vydanie distribuovaného systému na správu zdrojových kódov Git 2.36. Git je jedným z najpopulárnejších, najspoľahlivejších a najvýkonnejších systémov na správu verzií, ktorý poskytuje flexibilné prostriedky na nelineárny vývoj, založené na rozvetvení a zlúčení vetiev. Na zabezpečenie integrity histórie a odolnosti voči zmenám „spätným spôsobom“ sa používa implicitné hashovanie celej predchádzajúcej histórie v každom commite, rovnako je možné overenie digitálnymi podpismi jednotlivých tagov a commitov.

V porovnaní s predchádzajúcim vydaním bola do novej verzie prijatá 717 zmien, ktoré pripravilo 96 vývojárov, z ktorých 26 sa zúčastnilo vývoja po prvýkrát. Hlavné novinky:

  • Do príkazov „git log“ a „git show“ bola pridaná možnosť „—remerge-diff“, ktorá umožňuje zobraziť rozdiely medzi spoločným výsledkom zlúčenia a skutočnými údajmi ukázanými v commite po spracovaní príkazu „merge“, čo umožňuje jasne posúdiť zmeny vykonané v dôsledku riešenia konfliktov pri zlúčení. Bežný príkaz „git show“ oddeľuje rôzne riešenia konfliktov odsadením, čo sťažuje pochopenie zmien. Napríklad na obrázku nižšie riadky „+/-“ bez odsadenia ukazujú posledné riešenie konfliktu spojené s premenovaním v prvej vetve sha1 na oid v komentári, a „+/-“ s odsadením – počiatočné riešenie konfliktu, ktoré vzniklo v dôsledku výskytu ďalšieho argumentu vo funkcii dwim_ref() v druhej vetve.
    Vydanie systému správy zdrojových textov Git 2.36

    Pri používaní možnosti „—remerge-diff“ sa rozdiely medzi riešeniami konfliktov neoddeľujú pre každú rodičovskú vetvu, ale zobrazujú sa spoločné rozdiely medzi súborom, ktorý má konflikty zlúčenia, a súborom, v ktorom sú konflikty vyriešené.

    Vydanie systému správy zdrojových textov Git 2.36
  • Zvýšila sa flexibilita nastavenia správania pri resetovaní diskových cache cez volanie funkcie fsync(). Predtým dostupný parameter core.fsyncObjectFiles bol rozdelený na dve konfiguračné premenné core.fsync a core.fsyncMethod, ktoré poskytujú možnosť aplikovať fsync nielen na súbory s objektmi (.git/objects), ale aj na ďalšie štruktúry git, ako sú odkazy (.git/refs), reflog a pack súbory.

    Pomocou premennej core.fsync môžete uviesť zoznam vnútorných štruktúr Git, pre ktoré bude po operácii zápisu dodatočne vyvolaná funkcia fsync. Premenná core.fsyncMethod umožňuje vybrať metódu na vyprázdnenie vyrovnávacej pamäte, napríklad môžete zvoliť fsync na aplikáciu rovnomenného systémového volania alebo uviesť writeout-only na aplikáciu odloženej zápisy (pagecache writeback).

  • Na ochranu pred zraniteľnosťami, ktoré manipulujú so zástupnými symbolmi inými používateľmi priečinkov .git na zdieľaných oddieloch, bola posilnená kontrola vlastníka repozitára. Vykonávanie akýchkoľvek príkazov git je teraz povolené iba vo vlastných priečinkoch „.git“. Ak priečinok s repozitárom patrí inému používateľovi, predvolene sa zobrazí chyba. Uvedené správanie môžete vypnúť pomocou nastavenia safe.directory.
  • Do príkazu „git cat-file“, určeného na výstup zdrojového obsahu Git-objektov, bola pridaná voľba „—batch-command“, ktorá dopĺňa predtým dostupné príkazy „—batch“ a „—batch-check“ o možnosť adaptívneho výberu typu výstupu pomocou uvedenia „contents “ na výstup obsahu alebo „info “ na výstup informácií o objekte. Podporovaný je tiež príkaz „flush“ na vyprázdnenie výstupného buffera.
  • Do príkazu „git ls-tree“, určeného na vytvorenie zoznamu obsahu stromu objektov, bola pridaná voľba „—oid-only“ („—object-only“), analogická s „—name-only“, ktorá vypisuje iba identifikátory objektov na zjednodušenie volania zo skriptov. Taktiež bola implementovaná voľba „—format“, ktorá umožňuje určiť vlastný formát výstupu kombinovaním informácií o režime, type, názve a veľkosti.
  • V príkaze „git bisect run“ bola implementovaná definícia nenastavenia pre skript znaku spustiteľného súboru a v tomto prípade sa zobrazujú chyby s kódmi 126 alebo 127 (predtým, ak nebolo možné spustiť skript, všetky revízie boli označené ako problémové).
  • Do príkazu „git fetch“ bola pridaná voľba „—refetch“ na získanie všetkých objektov bez informovania druhej strany o obsahu, ktorý už existuje na lokálnom systéme. Takéto správanie môže byť užitočné na obnovenie stavu po zlyhaniach, keď nie je istota o integrite lokálnych údajov.
  • Do tímov «git update-index», «git checkout-index», «git read-tree» a «git clean» bola pridaná podpora pre čiastočné indexy (sparse index), ktoré umožňujú zvýšiť výkon a ušetriť miesto v repozitároch, v ktorých sa vykonávajú operácie čiastočného klonovania (sparse-checkout).
  • Zmenené správanie príkazu «git clone —filter=… —recurse-submodules», ktorý teraz vedie k čiastočnému klonovaniu submodulov (predtým sa filter pri vykonávaní takýchto príkazov aplikoval iba na hlavný obsah a submoduly sa klonovali úplne bez ohľadu na filter).
  • Do príkazu «git bundle» bola pridaná podpora pre určenie filtrov na výberové umiestnenie obsahu v súlade s operáciami čiastočného klonovania.
  • Do príkazu «git branch» bola pridaná voľba «—recurse-submodules» pre rekurzívne prehliadanie submodulov.
  • V userdiff bol navrhnutý nový spracovateľ pre jazyk Kotlin.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster