Vydanie ovládania zdroja Git 2.38

Bolo oznámené vydanie distribuovaného zdrojového riadiaceho systému Git 2.38. Git je jedným z najpopulárnejších, najspoľahlivejších a najvýkonnejších systémov na správu verzií, ktorý poskytuje flexibilné nelineárne vývojové nástroje založené na vetvení a zlučovaní. Na zabezpečenie integrity histórie a odolnosti voči retroaktívnym zmenám sa v každom commite používa implicitné hashovanie celej predchádzajúcej histórie, je tiež možné certifikovať jednotlivé tagy a commity digitálnymi podpismi vývojárov.

Oproti predchádzajúcemu vydaniu obsahovala nová verzia 699 zmien, pripravených za účasti 92 vývojárov, z ktorých 24 sa podieľalo na vývoji po prvýkrát. Hlavné inovácie:

  • Hlavná štruktúra zahŕňa „skalárnu“ pomôcku vyvinutú spoločnosťou Microsoft na správu veľkých úložísk. Nástroj bol pôvodne napísaný v C#, ale git obsahuje upravenú verziu v C. Nový nástroj sa líši od príkazu git tým, že štandardne povoľuje ďalšie funkcie a nastavenia, ktoré ovplyvňujú výkon pri práci s veľmi veľkými úložiskami. Napríklad pri použití skalárneho platí:
    • Čiastočné klonovanie na prácu s neúplnou kópiou úložiska.
    • Zabudovaný mechanizmus na sledovanie zmien v súborovom systéme (FSMonitor), ktorý vám umožní zaobísť sa bez prehľadávania celého pracovného adresára.
    • Indexy pokrývajúce objekty v rôznych súboroch balíkov (multipack).
    • súbory s grafom odovzdania s indexom grafu odovzdania, ktorý sa používa na optimalizáciu prístupu k informáciám odovzdania.
    • Pravidelná práca na pozadí na udržanie optimálnej štruktúry úložiska na pozadí bez blokovania interaktívnej relácie (pracuje sa raz za hodinu, aby sa proaktívne stiahli nové objekty zo vzdialeného úložiska a súbor sa aktualizoval grafom odovzdania, a proces balenia úložisko sa spúšťa každú noc).
    • režim „sparseCheckoutCone“, ktorý obmedzuje povolené vzory počas čiastočného klonovania.
  • Do príkazu "git rebase" bola pridaná voľba --update-refs na aktualizáciu závislých vetiev, ktoré sa prekrývajú s presúvanými vetvami, namiesto toho, aby ste museli manuálne kontrolovať každú závislú vetvu, aby ste sa prepli na požadované odovzdanie.
  • Urobil príkaz "git rm" kompatibilný s čiastočnými indexmi.
  • Vylepšené správanie príkazu "git mv A B" pri presúvaní súboru z pracovného priestoru s čiastočnými indexmi v režime "cone" do vonkajšieho rozsahu, ktorý tento režim nemá.
  • Formát bitmapového súboru bol optimalizovaný pre prácu s veľkými repozitármi – bola pridaná voliteľná indexová tabuľka so zoznamom vybraných commitov a ich offsetov.
  • Príkaz „git merge-tree“ implementuje nový režim, v ktorom sa na základe dvoch špecifikovaných odovzdaní vypočíta strom s výsledkom zlúčenia, ako keby boli zlúčené histórie týchto odovzdaní.
  • Pridané nastavenie "safe.barerepository" na ovládanie schopnosti hostiť holé repozitáre (repozitáre, ktoré neobsahujú pracovný strom) v rámci iných git repozitárov. Pri nastavení na „explicitné“ bude možné pracovať s holými úložiskami umiestnenými iba v hornom adresári. Aby ste mohli umiestniť holé úložiská do podadresárov, použite hodnotu „all“.
  • Príkaz „git grep“ pridal možnosť „-m“ („—max-count“), ktorá je podobná možnosti s rovnakým názvom v GNU grep a umožňuje vám obmedziť počet zobrazených zhôd.
  • Príkaz „ls-files“ implementuje voľbu „--format“ na konfiguráciu výstupných polí (napríklad môžete povoliť výstup názvu objektu, režimov atď.).
  • V „git cat-file“ je možné pri zobrazovaní obsahu objektov brať do úvahy väzby autor-e-mail špecifikované v súbore mailmap.

Zdroj: opennet.ru

Pridať komentár