uvoľnenie distribuovaného systému riadenia zdroja . 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 používa implicitné hashovanie celej predchádzajúcej histórie v každom commite a taktiež je možné jednotlivé tagy a commity certifikovať digitálnymi podpismi vývojárov.
Oproti predchádzajúcemu vydaniu obsahovala nová verzia 544 zmien, pripravených za účasti 78 vývojárov, z ktorých 21 sa podieľalo na vývoji po prvýkrát. :
- Pridaná podpora konfiguračných makier, prostredníctvom ktorých môžete rýchlo prepínať medzi rôznymi sadami nastavení bez toho, aby ste sa podrobne zaoberali konkrétnymi možnosťami, ktoré sú s nimi spojené. Pomocou makier nie je potrebné pamätať si, ktoré nastavenia je potrebné zmeniť, aby sa aktivovala tá či oná funkcionalita. Ak je napríklad veľký archív pomalý, možno budete chcieť prejsť na nový indexovací mechanizmus, povoliť kompresiu predpony cesty a povoliť vyrovnávaciu pamäť nesledovaných súborov nastavením index.version na 4 a povolením core.untrackedCache. Makrá vám umožňujú nestrácať čas hľadaním správneho riešenia v dokumentácii, ale okamžite aktivovať nastavenia s optimalizáciou pre úložiská s veľkým počtom súborov:
git config feature.manyFiles true
- Ukladanie objektov ako grafu commitov je teraz štandardne povolené. Táto funkcia používa na indexovanie štruktúru grafu, a nie lineárny zoznam hashov objektov s odkazmi na iné objekty. Predtým identifikácia vydaní obsahujúcich konkrétnu opravu vyžadovala načítanie každého objektu z disku na nájdenie odkazov. Teraz je možné vďaka úložisku grafov identifikovať všetky potrebné odkazy naraz. Prechod na ukladanie grafu commitov v repozitároch jadra. Linux Git takmer zdvojnásobil výkon operácií s vetvami. Ak chcete aktivovať novú metódu ukladania po aktualizácii na Git 2.24, spustite príkaz „git gc“.
Medzi zmenami súvisiacimi s commit-graph si tiež všimneme, že bola zavedená implementácia indikátora priebehu operácie v príkazoch súvisiacich s commit-graph („git commit-graph write“, „git commit-graph over“ atď.) do spoločnej formy s inými príkazmi .). Indikátor priebehu sa teraz štandardne zobrazuje iba pre terminál (na zmenu správania použite možnosť "-[no-]progress"). Okrem toho bol pridaný nový konfiguračný parameter fetch.writeCommitGraph, ktorý umožňuje automatickú aktualizáciu súboru s grafom odovzdania počas operácií „git fetch“ (všetky odovzdania získané z externých repozitárov okamžite prejdú do grafu odovzdania bez potreby spustiť auto-gc samostatne);
- Pridaný príkaz na prepísanie histórie zmien - "", čo je jednoduchšia alternatíva k príkazu "» vykonávať operácie s históriou zmien v úložisku (napríklad vymazanie súboru z úložiska alebo načítanie histórie zmien do konkrétneho adresára). Aby sa zlepšila efektivita, git filter-repo namiesto riadnej analýzy potvrdenia po potvrdení vykonáva operácie s reprezentáciou histórie vo forme nepretržitého prúdu.
Filtrovanie histórie sa vykonáva pomocou voľby „-path-{glob,regex}“, ktorá vám umožňuje používať jednoduché masky aj regulárne výrazy. Existujú aj možnosti na vyhľadávanie a nahradenie alebo vyčistenie binárnych objektov, ktoré sú väčšie ako zadaná veľkosť. Každé prepísané odovzdanie sa dodáva s novým identifikátorom hash SHA-1 a všetky odkazy na nahradené odovzdanie sa aktualizujú v súlade s novým identifikátorom.
Na zobrazenie súhrnu štatistík o úložisku (počet objektov podľa typu, najväčšie súbory a adresáre, ktoré rozšírenia vyžadujú viac miesta na disku atď.) je k dispozícii možnosť „-analyzovať“. Na rozšírenie funkcionality je možné v Pythone pripojiť ľubovoľné obslužné programy spätného volania, prostredníctvom ktorých môžete vytvárať nové čiastkové príkazy a spracovávať rôzne udalosti (napríklad nové typy súborov);
- Pridaná možnosť „--end-of-options“ na oddelenie možností od názvov odkazov, ktoré môžu začínať znakom „-“ a považovať sa za možnosti („git log --end-of-options -super-dangerous-option“ ). Ak v bežnom živote môžu byť takéto názvy uniknuté ako „git log 'refs/heads/—super-dangerous-option', potom môžu mať skripty problémy s definovaním menného priestoru. Všeobecne akceptovaný oddeľovač " - " nie je v tomto prípade použiteľný, pretože sa už používa na oddelenie názvov odkazov od súborov (napríklad „git log —end-of-options —super-dangerous-option ^master — cesta/k /súbor”);
- Pridané možnosti „--strategy“ a „--strategy-option“ do „git rebase --rebase-merges“ na výber ;
- Pridaný nový handler ".git/hooks/pre-merge-commit", ktorý sa volá po dokončení zlúčenia, ale pred zapísaním výsledného odovzdania;
- Do nástroja na dokončovanie príkazov bola pridaná podpora pre dokončovanie konfiguračných premenných vo vzťahu k nastaveniam konkrétnych príkazov.
Ak napríklad potrebujete zadať „git -c core.autocrlf=false add path/to/my/file“, ale nepamätáte si presný názov premennej „core.autocrlf“, môžete stlačiť kláves Tab a získať nápoveda.
Okrem toho vývojári Git kódexu správania pre účastníka projektu, ktorý definuje základné princípy riešenia konfliktných situácií. Dokument je založený na odporúčaniach "„, používaný v mnohých open source projektoch vrátane jadra Linux, Eclipse, Freedesktop, GitLab, Ruby a Kubernetes. Tento dokument zabezpečuje rovnaké príležitosti pre všetkých účastníkov bez ohľadu na ich svetonázor, vek, pohlavie, náboženské presvedčenie, úroveň vzdelania, sociálne postavenie a národnosť. Komunita podporuje priateľskú komunikáciu, porozumenie, empatiu k problémom iných, akceptovanie konštruktívnej kritiky a prijímanie riešení, ktoré sú najlepšie pre komunitu ako celok. Trolling, urážlivá komunikácia, pokusy o ponižovanie, obťažovanie, narušenie súkromia, zverejňovanie osobných údajov a iné konanie, ktoré môže byť v profesionálnej komunikácii považované za nevhodné, nie je povolené.
Zdroj: opennet.ru
