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. Glavni inovacije:

  • 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:

    git clone --filter=blob:none --no-checkout /your/repository/here repo
    $cd spremište
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git naplata.

    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.

Izvor: opennet.ru

Dodajte komentar