Izdanje kontrole izvora Git 2.35

Nakon dva mjeseca razvoja, pušten je distribuirani sistem kontrole izvora Git 2.35. Git je jedan od najpopularnijih, najpouzdanijih i najučinkovitijih sistema kontrole verzija, koji pruža fleksibilne nelinearne razvojne alate zasnovane na grananju i spajanju. Da bi se osigurao integritet istorije i otpornost na retroaktivne promene, implicitno heširanje celokupne prethodne istorije se koristi u svakom urezivanju, takođe je moguće sertifikovati pojedinačne oznake i urezivanja digitalnim potpisima programera.

U odnosu na prethodnu verziju, nova verzija je uključivala 494 izmjene, pripremljene uz učešće 93 programera, od kojih je 35 prvi put učestvovalo u razvoju. Glavne inovacije:

  • Proširene su mogućnosti korištenja SSH ključeva za digitalno potpisivanje Git objekata. Kako bi se ograničio period važenja nekoliko ključeva, dodana je podrška za OpenSSH direktive “valid-before” i “valid-after”, pomoću kojih možete osigurati ispravan rad sa potpisima nakon što je ključ rotirao jedan od programera. Prije toga je postojao problem sa odvajanjem potpisa po starom i novom ključu - ako izbrišete stari ključ, bit će nemoguće provjeriti potpise napravljene njime, a ako ga ostavite, ostat će moguće kreirajte nove potpise sa starim ključem, koji je već zamijenjen drugim ključem. Koristeći valid-before i valid-after možete odvojiti opseg ključeva na osnovu vremena kada je potpis kreiran.
  • U postavci merge.conflictStyle, koja vam omogućava da odaberete način prikaza informacija o sukobima tokom spajanja, pojavila se podrška za "zdiff3" način rada, koji sve standardne linije navedene na početku ili kraju sukoba pomiče van konflikta oblasti, što omogućava kompaktniji prikaz informacija.
  • “--stage” mod je dodat naredbi “git stash” koja vam omogućava da sakrijete samo promjene koje su dodate u indeks, na primjer u situaciji kada trebate privremeno odgoditi neke od složenih promjena kako biste prvo dodajte ono što je već spremno i pozabavite se ostalim nakon nekog vremena. Režim je sličan komandi “git commit”, u kojoj se upisuju samo promjene smještene u indeks, ali umjesto kreiranja novog urezivanja u “git stash —staged”, rezultat se pohranjuje u privremenu oblast stash. Kada su promjene potrebne, mogu se vratiti naredbom “git stash pop”.
  • Novi specificator formata je dodat naredbi "git log", "-format=%(describe)", koji vam omogućava da kombinujete izlaz "git log" sa izlazom naredbe "git describe". Parametri za "git describe" su specificirani direktno unutar specifikacije ("-format=%(describe:match= ,exclude= )"), u koji možete uključiti i skraćene oznake ("—format=%(describe:tags= )") i konfigurirajte broj heksadecimalnih znakova za identifikaciju objekata (“—format=%(describe:abbrev= )"). Na primjer, da navedete posljednjih 8 urezivanja čije oznake nemaju oznaku kandidata za oslobađanje i da navedete identifikatore od 8 znakova, možete koristiti naredbu: $ git log -8 —format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1b643d 2-gb95bd94 bbc056f2.34.1 v642-56-gffb95f8d v7-2.34.1- gdf203c9adeb2980902 v2.34.1-640-g3b41a212
  • Postavka user.signingKey sada podržava nove tipove ključeva koji nisu ograničeni na tip “ssh-” i specificiraju punu putanju datoteke do ključa. Alternativni tipovi su specificirani pomoću prefiksa "key::", na primjer "key::ecdsa-sha2-nistp256" za ECDSA ključeve.
  • Primjetno je povećana brzina generisanja liste promjena u režimu „—histogram“, kao i pri korištenju opcije „—color-moved-ws“, koja kontroliše isticanje razmaka u dif-u boja.
  • Komanda "git jump", koja se koristi za pružanje informacija Vimu o tačnom skoku na željenu poziciju u datoteci prilikom raščlanjivanja sukoba spajanja, pregleda razlika ili izvođenja operacije pretraživanja, pruža mogućnost sužavanja pokrivenih sukoba spajanja. Na primjer, da ograničite operacije samo na "foo" direktorij, možete specificirati "git jump merge - foo" i isključiti direktorij "Documentation" iz obrade - "git jump merge - ':^Documentation'"
  • Radilo se na standardizaciji upotrebe tipa "size_t" umjesto "unsigned long" za vrijednosti koje predstavljaju veličinu objekata, što je omogućilo korištenje "čistih" i "razmazanih" filtera s datotekama većim od 4 GB. na svim platformama, uključujući platforme sa modelom podataka LLP64, tip “unsigned long” u kojem je ograničen na 4 bajta.
  • Opcija “-empty=(stop|drop|keep)” je dodana naredbi “git am”, koja vam omogućava da odaberete ponašanje za prazne poruke koje ne sadrže zakrpe kada analizirate zakrpe iz poštanskog sandučeta. Vrijednost “stop” će prekinuti cijelu operaciju zakrpanja, “drop” će preskočiti praznu zakrpu, a “keep” će kreirati prazno urezivanje.
  • Dodata podrška za parcijalne indekse (sparse index) naredbama "git reset", "git diff", "git blame", "git fetch", "git pull" i "git ls-files" radi poboljšanja performansi i uštede prostora u spremišta , u kojima se izvode operacije djelomičnog kloniranja (sparse-checkout).
  • Komanda "git sparse-checkout init" je zastarjela i treba je zamijeniti "git sparse-checkout set".
  • Dodata početna implementacija novog "reftable" backenda za pohranjivanje referenci kao što su grane i oznake u spremištu. Nova pozadina koristi blok memoriju koju koristi JGit projekat i optimizovana je za skladištenje veoma velikog broja referenci. Backend još nije integrisan sa refs sistemom i nije spreman za praktičnu upotrebu.
  • Paleta boja naredbe "git grep" je prilagođena da odgovara GNU uslužnom programu grep.

izvor: opennet.ru

Dodajte komentar