Izdanje distribuiranog sustava kontrole izvora Git 2.25
Dostupno izdanje distribuiranog sustava kontrole izvora Git 2.25.0. Git je jedan od najpopularnijih, pouzdanih i visokoučinkovitih sustava za kontrolu verzija, koji pruža fleksibilne nelinearne razvojne alate temeljene na grananju i spajanju. Kako bi se osigurala cjelovitost povijesti i otpornost na retroaktivne promjene, implicitno hashiranje cijele prethodne povijesti koristi se u svakom predanju; također je moguće certificirati pojedinačne oznake i predaje digitalnim potpisima programera.
U usporedbi s prethodnim izdanjem, nova verzija je uključivala 583 promjena, u pripremi su sudjelovala 84 programera, od kojih je 32 prvi put sudjelovalo u razvoju. Glavniinovacije:
Mogućnost djelomičnog kloniranja približava se stabilizaciji i potpunoj spremnosti, što vam omogućuje prijenos samo dijela podataka i rad s nepotpunom kopijom repozitorija. Tipični klon kopira sve podatke iz repozitorija, uključujući svaku verziju svake datoteke u povijesti promjena. Za vrlo velika spremišta, kopiranje podataka rezultira značajnim povećanjem prometa i prostora na disku, čak i ako je programer zainteresiran samo za podskup datoteka. Kako bi se olakšalo dohvaćanje samo dijela stabla radnog izvora, novo izdanje uvodi eksperimentalnu naredbu "sparse-checkout" i novu opciju "--sparse" za naredbu "clone".
Prethodno se proces selektivnog kloniranja izvodio kroz zadatak filteri za filtriranje nepotrebnog sadržaja i opciju “—no-checkout” za onemogućavanje popunjavanja datoteka koje nedostaju. Nakon toga, prije izvođenja checkout operacije, bilo je potrebno omogućiti postavku core.sparseCheckout i definirati popis uzoraka izuzetih putanja u datoteci .git/info/sparse-checkout. Na primjer, za kloniranje bez mrljica i sprječavanje izdvajanja datoteka iz poddirektorija dubine 2 ili više, možete pokrenuti:
Nova naredba “git sparse-checkout” uvelike pojednostavljuje rad i reducira proces organiziranja rada s nepotpunim repozitorijem na sljedeće naredbe:
git clone --filter=blob:none --sparse /your/repository/here repo
git sparse-checkout set /path/to/checkout/out
Naredba sparse-checkout omogućuje postavljanje popisa putova za odjavu (set) bez ručnog konfiguriranja .git/info/sparse-checkout, kao i prikaz trenutnog popisa putova (list) i omogućavanje ili onemogućavanje djelomičnih odjava (omogući /onemogući).
Za optimiziranje rada s vrlo velikim spremištima i popisima predložaka, "git config core.sparseCheckoutCone", koji ograničava dopuštene uzorke (umjesto proizvoljnih uzoraka .gitignore, možete odrediti trebaju li se odjaviti svi putovi i sve datoteke u određenom poddirektoriju). Na primjer, ako veliko spremište ima direktorij “A/B/C” i sav je posao koncentriran u poddirektoriju “C”, tada kada omogućite način rada sparseCheckoutCone, naredba “git sparse-checkout set A/B/ C” će izdvojiti cijeli sadržaj “C”, ali će iz “A” i “B” izdvojiti samo dijelove potrebne za rad s “C”.
Iz dokumentacije ("git rebase -h") uklonjene su sve reference na opciju "--preserve-merges", koja je zastarjela i umjesto nje bi se trebala koristiti za migraciju skupa obveza.git rebase --rebase-spaja”.
Kako bi se poboljšala čitljivost poruka sa zakrpama poslanih na popise za slanje e-pošte, dodana je opcija "git format-patch —cover-from-description subject", kada je navedena, prvi odlomak iz teksta opisa grane koristi se kao predmet propratno pismo za set zakrpa.
Implementirana podrška za kombiniranu upotrebu naredbe “git apply -3way” i postavke “merge.conflictStyle” (“git apply” sada uzima u obzir stil opisa sukoba iz merge.conflictStyle kada je potrebno riješiti sukob nakon pokušaja za primjenu datoteke zakrpe na spremište).
Kod definicije funkcije koji se koristi u operacijama kao što je "git diff/grep --show-function/-function-context" proširen je za podršku definiranja granica funkcija u jezičnim programima Eliksir.
Dodana je nova opcija "git add", "git commit", "git reset" i drugim naredbama - "-pathspec-from-file", koja omogućuje učitavanje popisa staza iz datoteke ili ulaznog toka , umjesto da ih ispisujete u naredbenom retku.
Riješen je problem s otkrivanjem preimenovanja na razini direktorija prilikom upisa obveza. Definicija nije radila ako je sadržaj poddirektorija premješten u korijen repozitorija.
Predložena je početna implementacija redizajnirane naredbe “git add -i”, koja vam omogućuje interaktivno dodavanje promijenjenog sadržaja, prepisanog iz Perla u C. U tijeku je slična prerada naredbe “git add -p”.
Naredba “git log –graph” je refaktorirana, generirajući ASCII sliku grafa s poviješću promjena u repozitoriju. Prerada je omogućila značajno poboljšanje i pojednostavljenje izlaza bez narušavanja strukture priče, što je, primjerice, riješilo problem sa slikom koja se protezala izvan širine terminalne linije.
Opcija "git log --format=.." omogućuje promjenu izlaznog formata,
prošireno podrškom za zastavice "l/L" za prikaz samo dijela adrese e-pošte naznačenog prije simbola "@" (na primjer, korisno kada svi programeri imaju sve adrese e-pošte u istoj domeni).
Dodana je podnaredba “set-url” naredbi “git submodule”.
Kompleti za testiranje ažurirani su u pripremi za prijelaz na
algoritam raspršivanja SHA-2 umjesto SHA-1.