Izdanje kontrole izvora Git 2.35

Nakon dva mjeseca razvoja, objavljen je distribuirani sustav kontrole izvora Git 2.35. 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 raspršivanje cijele prethodne povijesti koristi se u svakom commitu; također je moguće certificirati pojedinačne oznake i commitove digitalnim potpisima programera.

U usporedbi s prethodnim izdanjem, nova verzija je uključivala 494 izmjene, pripremljene uz sudjelovanje 93 programera, od kojih je 35 po prvi put sudjelovalo u razvoju. Glavne inovacije:

  • Proširene su mogućnosti korištenja SSH ključeva za digitalno potpisivanje Git objekata. Da biste ograničili razdoblje valjanosti nekoliko ključeva, dodana je podrška za OpenSSH direktive "valjano prije" i "valjano poslije", pomoću kojih možete osigurati ispravan rad s potpisima nakon što je jedan od programera rotirao ključ. Prije toga je postojao problem s 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 stvoriti nove potpise sa starim ključem, koji je već zamijenjen drugim ključem. Korištenjem valid-before i valid-after možete razdvojiti opseg ključeva na temelju vremena kada je potpis stvoren.
  • U postavci merge.conflictStyle, koja vam omogućuje odabir načina za prikaz informacija o sukobima tijekom spajanja, pojavila se podrška za način rada "zdiff3", koji premješta sve standardne retke navedene na početku ili kraju sukoba izvan sukoba područje, što omogućuje kompaktniji prikaz informacija.
  • Naredbi “git stash” dodan je način rada “--staged” koji vam omogućuje da sakrijete samo promjene dodane 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 nakon nekog vremena pozabavite se ostalim. Način je sličan naredbi "git commit", piše samo promjene unesene u indeks, ali umjesto stvaranja novog predanja u "git stash —staged", rezultat se pohranjuje u privremeno područje zalihe. Nakon što su promjene potrebne, mogu se poništiti naredbom "git stash pop".
  • Naredbi "git log" dodan je novi specifikator formata, "--format=%(describe)", koji vam omogućuje kombiniranje izlaza "git log" s izlazom naredbe "git describe". Parametri za "git describe" navedeni su izravno unutar specifikatora ("-format=%(describe:match= ,isključi= )"), u koje također možete uključiti skraćene oznake ("-format=%(describe:tags= )") i konfigurirajte broj heksadecimalnih znakova za identifikaciju objekata ("—format=%(describe:abbrev= )"). Na primjer, za popis zadnjih 8 obveza čije oznake nemaju oznaku kandidata za izdanje i navođenje identifikatora 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.1-643-g2b95d94b056ab v2.34.1- 642-gb56bd 95bbc8f7 v2.34.1-203-gffb9f2980902d v2.34.1-640- gdf3c41adeb212 v2.34.1-639-g36b65715a4132
  • Postavka user.signingKey sada podržava nove vrste ključeva koji nisu ograničeni na tip "ssh-" i određivanje punog puta datoteke do ključa. Alternativni tipovi navedeni su pomoću prefiksa "key::", na primjer "key::ecdsa-sha2-nistp256" za ECDSA ključeve.
  • Brzina generiranja popisa promjena u načinu rada “—histogram”, kao i pri korištenju opcije “—color-moved-ws”, koja kontrolira označavanje razmaka u razlici boja, osjetno je povećana.
  • Naredba "git jump", koja se koristi za pružanje Vimu informacija o točnom skoku na željenu poziciju u datoteci prilikom raščlanjivanja sukoba spajanja, pregledavanja razlika ili izvođenja operacije pretraživanja, pruža mogućnost sužavanja obuhvaćenih sukoba spajanja. Na primjer, da biste ograničili operacije samo na "foo" direktorij, možete navesti "git jump merge - foo", a da biste isključili "Documentation" direktorij 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 filtara "clean" i "smudge" s datotekama većim od 4 GB na svim platformama, uključujući platforme s modelom podataka LLP64, tip "unsigned long" u kojem je ograničen na 4 bajta.
  • Opcija “-empty=(stop|drop|keep)” dodana je naredbi “git am” koja vam omogućuje odabir ponašanja za prazne poruke koje ne sadrže zakrpe prilikom analiziranja zakrpa iz poštanskog sandučića. Vrijednost "stop" će prekinuti cijelu operaciju krpanja, "drop" će preskočiti praznu zakrpu, a "keep" će stvoriti praznu predaju.
  • Dodana podrška za djelomične indekse (sparse index) naredbama "git reset", "git diff", "git blame", "git fetch", "git pull" i "git ls-files" za poboljšanje performansi i uštedu prostora u repozitoriji , u kojima se izvode operacije djelomičnog kloniranja (sparse-checkout).
  • Naredba "git sparse-checkout init" je zastarjela i treba je zamijeniti "git sparse-checkout set".
  • Dodana početna implementacija novog "refable" backend-a za pohranu referenci kao što su grane i oznake u repozitoriju. Novi backend koristi blokovnu pohranu koju koristi JGit projekt i optimiziran je za pohranjivanje vrlo velikog broja referenci. Pozadina još nije integrirana sa sustavom referenci i nije spremna za praktičnu upotrebu.
  • Paleta boja naredbe "git grep" prilagođena je kako bi odgovarala uslužnom programu GNU grep.

Izvor: opennet.ru

Dodajte komentar