Bol predstavený release distribuovanej systému správy zdrojového kódu Git 2.53. Git sa vyznačuje vysokou výkonnosťou a poskytuje prostriedky pre nelineárny vývoj, založené na vetvení 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, ako aj overenie digitálnymi podpismi vývojárov jednotlivých tagov a commitov. Kód Git sa šíri pod licenciou GPLv2+.
V porovnaní s predchádzajúcim vydaním bola do novej verzie prijatá 466 zmien, pripravených s účasťou 70 vývojárov (21 z nich sa zúčastnilo vývoja Git po prvýkrát). Hlavné novinky:
- Bola pridaná možnosť aplikovania stratégie balenia repozitárov „geometric“ („git repack --geometric“) na čiastočne klonované externé repozitáre, ktoré pracujú v režime „promisor“ (chýbajúce objekty sa sťahujú podľa potreby). Pri prebalení s možnosťami „--geometric“ sa pack-súbory s príponou „.promisor“ spracúvajú a balia samostatne. Stratégia „geometric“ umožňuje skrátiť čas údržby veľkých monorepozitárov, vďaka selektívnemu prebaleniu objektov a vylúčeniu nadbytočných zdrojovo náročných operácií, ako je zlúčenie všetkých pack-súborov (uchováva sa geometrická progresia veľkosti pack-súborov, pričom každý nasledujúci pack-súbor musí byť minimálne dvakrát väčší ako predchádzajúci).
- Do tímu „git fast-import“ bola pridaná možnosť „--signed-commits=strip-if-invalid“ na odstránenie digitálnych podpisov z importovaných objektov, ktoré sa stali neplatnými po prepísaní časti histórie repozitára. Predtým bolo možné buď importovať, alebo odstrániť všetky podpisy, bez rozdelenia na platné a stratené významy. Možnosť „strip-if-invalid“ umožňuje realizovať nástroje na zachovanie platných podpisov a prepisovanie objektov so stratou aktuálnych podpisov.
- Do príkazu „git repo structure“ bola pridaná informácia o veľkosti všetkých dosiahnuteľných objektov (reachable) v repozitári s rozdelením podľa ich typov. Informácie sa teraz vypisujú čitateľným spôsobom s jednotkami merania a zobrazujú sa samostatne pre skutočnú a obsadenú veľkosť na disku, čo umožňuje posúdiť celkovú veľkosť repozitára na disku. $ git repo structure | Štruktúra repozitára | Hodnota | | ——————— | ———- | | * Odkazy | | | * Počet | 1.78 k | | * Vetvy | 5 | | * Značky | 1.03 k | | * Vzdialené | 749 | | * Iné | 0 | | | | | * Dosiahnuteľné objekty | | | * Počet | 421.37 k | | * Potvrdenia | 88.03 k | | * Stromy | 169.95 k | | * Bloby | 162.40 k | | * Značky | 994 | | * Rozšírená veľkosť | 7.61 GiB | | * Potvrdenia | 60.95 MiB | | * Stromy | 2.44 GiB | | * Bloby | 5.11 GiB | | * Značky | 731.73 KiB | | * Veľkosť na disku | 301.50 MiB | | * Potvrdenia | 33.57 MiB | | * Stromy | 77.92 MiB | | * Bloby | 189.44 MiB | | * Značky | 578.13 KiB |
- Do príkazu „git maintenance“ bola pridaná podpríkaz „is-needed“ na vykonávanie operácií údržby repozitára len v prípade jeho potreby.
- V experimentálnom príkaze „git replay“ bolo predvolene implementované aktualizovanie odkazov v transakcii, namiesto zobrazenia, kam by mali odkazovať odkazy, bez aktualizácie.
- Do príkazu „git blame“ bola pridaná možnosť výberu algoritmu hodnotenia rozdielov pomocou voľby „—diff-algorithm=“.
- Do príkazu „git repo info“ bola pridaná voľba „—all“.
- Podpora symbolických odkazov pre platformu Windows bola prenesená z Git-for-Windows.
Do posledného vydania bolo pridané upozornenie na zapnutie predvolenej kompilácie komponentov v jazyku Rust v Git 2.53. Napriek tomu v skutočnosti verzia Git 2.53 pridáva iba samostatné vylepšenia podpory Rust (možnosť kompilácie bez GNU sed), ale kompilácia s Rust pri používaní Makefile zostáva predvolene vypnutá (vyžaduje nastavenie flagu WITH_RUST), zatiaľ čo pri používaní Meson sa automaticky aktivuje pri prítomnosti kompilátora rustc. V verzii Git 3.0 sa plánuje zaradenie nástrojov Rust medzi povinné závislosti kompilácie.
Zdroj: opennet.ru
