Objavljen je Git 2.24, distribuirani sustav za upravljanje izvorom

Dostupno izdanje distribuiranog sustava za upravljanje izvorom Git 2.24.0. Git je jedan od najpopularnijih, pouzdanih i visokoučinkovitih sustava za upravljanje verzijama, koji pruža fleksibilne alate za nelinearni razvoj, zasnovan na grananju i spajanju grana. Kako bi se osigurala cjelovitost povijesti i otpornosti na promjene "unatrag", koristi se implicitno haširanje cijele prethodne povijesti u svakom commitu. Također je moguće ovjeravanje digitalnim potpisima programera pojedinih oznaka i commit-a.

U usporedbi s prethodnom verzijom, nova verzija donosi 544 izmjene, koje su pripremili 78 programera, od kojih je 21 prvi put sudjelovao u razvoju. Glavne novosti:

  • Dodana je podrška za konfiguracijske makronaredbe, putem kojih možete brzo prelaziti između različitih skupova postavki, ne ulazeći u pojedinosti vezane uz određene opcije. Uz makronaredbe, nije potrebno pamtiti koje postavke trebate promijeniti za aktiviranje određene funkcionalnosti. Na primjer, u slučaju usporavanja rada s velikim repozitorijem, možda će biti potrebno prebaciti se na novi mehanizam indeksacije, uključiti kompresiju prefiksa putanja i aktivirati predmemoriju nepraćenih datoteka postavljanjem parametra index.version na 4 i aktiviranjem core.untrackedCache. Makronaredbe omogućavaju da ne gubite vrijeme tražeći pravo rješenje u dokumentaciji, već odmah aktivirate postavke s optimizacijama za repozitorije s velikim brojem datoteka:

    git config feature.manyFiles true

  • Zadano je omogućeno pohranjivanje objekata u obliku grafa commit-ova (commit-graph), pri čemu se za indeksaciju ne koristi linearni popis hešova objekata sa referencama na druge objekte, već struktura u obliku grafa. Ako je ranije za određivanje izdanja u kojima se nalazi određena ispravka bilo potrebno učitati svaki objekt s diska za traženje referenci, sada se uz pohranu u obliku grafa može odmah odrediti sve potrebne veze. Prelazak na pohranu u obliku grafa commit-ova u repozitorijima jezgre Linuxa i Git-a omogućio je gotovo dvostruko povećanje performansi operacija s granama. Za aktiviranje novog metode pohrane nakon nadogradnje na Git 2.24, potrebno je izvršiti naredbu 'git gc'.

    Iz promjena vezanih uz commit-graph također se ističe usklađivanje s drugim naredbama u implementaciji indikatora napretka operacije u naredbama vezanim uz commit-graph („git commit-graph write“, „git commit-graph verify“ i sl.). Indikator napretka sada se po defaultu prikazuje samo za terminal (za promjenu ponašanja potrebno je koristiti opciju „-[no-]progress“). Osim toga, dodana je nova konfiguracijska opcija fetch.writeCommitGraph, koja uključuje automatsku ažuriranje datoteke s grafom commit-a prilikom operacija „git fetch“ (svi commit-i preuzeti iz vanjskih repozitorija odmah će biti uključeni u commit-graph bez potrebe za zasebnim pokretanjem auto-gc);

  • Dodana je naredba za prepisivanje povijesti promjena — „git filter-repo„, koja je jednostavnija alternativa naredbi „git filter-branch“ za izvođenje operacija s povijesti promjena u repozitoriju (npr. brisanje datoteke iz repozitorija ili preuzimanje povijesti promjena određenog direktorija). Za poboljšanje učinkovitosti, umjesto sortirane po commit-ima analize u „git filter-repo“, operacije se izvode nad prikazom povijesti u obliku kontinuiranog toka.

    Filtriranje povijesti provodi se uz pomoć opcije „-path-{glob,regex}“, koja omogućava upotrebu jednostavnih maski i regularnih izraza. Također postoje opcije za izvođenje operacije „pretraživanje i zamjena“ ili čišćenje binarnih objekata čija veličina prelazi zadanu. Svaki prepisani commit opremljen je novim SHA-1 heš identifikatorom i u skladu s novim identifikatorom ažuriraju se sve reference na zamijenjeni commit.

    Za ispis sažetak sa statistikom o repozitoriju (broj objekata po vrstama, najveće datoteke i direktoriji, koje ekstenzije zahtijevaju više prostora na disku i sl.) dostupna je opcija „-analyze“. Za proširenje funkcionalnosti postoje mogućnosti povezivanja proizvoljnih callback handler-a u Pythonu, preko kojih se mogu stvarati nove podkomande i obrađivati različiti događaji (npr. novi tipovi datoteka);

  • Dodana je opcija «—end-of-options», koja omogućava odvajanje opcija od imena veza, koja mogu početi sa simbolom «-» i biti shvaćena kao opcije («git log —end-of-options —super-dangerous-option»). Ako se u praksi takva imena mogu eskivirati kao «git log ‘refs/heads/—super-dangerous-option'», mogući su problemi s definiranjem prostora imena u skriptama. Općenito prihvaćen razdjelnik » — » u ovom slučaju nije primjenjiv, jer se već koristi za odvajanje imena veza od datoteka (na primjer, «git log —end-of-options —super-dangerous-option ^master — path/to/file»);
  • U «git rebase —rebase-merges» dodane su opcije «—strategy» i «—strategy-option» za odabir strategije spajanja;
  • Dodan je novi obradnik «.git/hooks/pre-merge-commit», koji se pokreće nakon izvršavanja spajanja, ali prije zapisivanja rezultantnog commit-a;
  • U motor za automatsko dovršavanje naredbi dodana je podrška za dodatak konfiguracijskih varijabli u vezi s postavkama specifičnim za određene naredbe.
    Na primjer, kada je potrebno unijeti «git -c core.autocrlf=false add path/to/my/file», ali se ne sjeća točnog naziva varijable «core.autocrlf», može se pritisnuti Tab i dobiti savjet.

Osim toga, programeri Gita dodali su kodeks ponašanja sudionika projekta, koji određuje osnovna načela rješavanja sukobljenih situacija. Dokument se temelji na preporukama «Contributor Covenant«, koji se primjenjuju u mnogim otvorenim projektima, uključujući Linux kernel, Eclipse, Freedesktop, GitLab, Ruby i Kubernetes. Dokument definira jednake mogućnosti za sve sudionike, bez obzira na njihovo svjetonazorenje, dob, spol, religijske preferencije, razinu obrazovanja, socijalni status i nacionalnost. U zajednici se potiče prijateljski način komunikacije, razumijevanje, suosjećanje s problemima drugih sudionika, prihvaćanje konstruktivne kritike, donošene najbolje odluke za cijelu zajednicu. Trolanje, uvredljive forme komunikacije, pokušaji ponižavanja, uznemiravanje, kršenja privatnosti, otkrivanje osobnih podataka, kao i druge radnje koje se mogu smatrati neprimjerenima u profesionalnoj komunikaciji, nisu dopušteni.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster