Izdanje distribuiranog sustava kontrole izvora Git 2.24

Dostupno izdanje distribuiranog sustava kontrole izvora Git 2.24.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 544 promjena, u pripremi su sudjelovala 78 programera, od kojih je 21 prvi put sudjelovalo u razvoju. Glavni inovacije:

  • Dodana je podrška za konfiguracijske makronaredbe, putem kojih se možete brzo prebacivati ​​između različitih skupova postavki bez ulaženja u detalje o specifičnim opcijama povezanim s njima. Uz pomoć makronaredbi, nema potrebe pamtiti koje postavke je potrebno promijeniti da biste aktivirali ovu ili onu funkcionalnost. Na primjer, ako je veliko spremište sporo, možda ćete se htjeti prebaciti na novi mehanizam za indeksiranje, omogućiti kompresiju prefiksa staze i omogućiti nepraćenu predmemoriju datoteke postavljanjem index.version na 4 i omogućavanjem core.untrackedCache. Makronaredbe vam omogućuju da ne gubite vrijeme na traženje pravog rješenja u dokumentaciji, već da odmah aktivirate postavke s optimizacijama za repozitorije s velikim brojem datoteka:

    značajka git config.manyFiles true

  • Zadano je omogućeno pohranjivanje objekata u obliku grafa uvrštavanja (commit-graph), u kojem se za indeksiranje ne koristi linearni popis hashova objekata s vezama na druge objekte, već struktura u obliku grafa . Ako je ranije, kako bi se odredila izdanja koja sadrže određeni popravak, bilo potrebno učitati svaki objekt s diska radi traženja veza, tada kada se pohrani u obliku grafikona, možete odmah odrediti sve potrebne veze. Prelazak na pohranu u obliku grafa predaje u Linux jezgri i Git spremištima omogućio nam je postizanje gotovo dvostrukog povećanja performansi operacija s ograncima. Da biste omogućili novu metodu pohrane nakon nadogradnje na Git 2.24, morate pokrenuti naredbu "git gc".

    Među promjenama povezanim s commit-graphom, također napominjemo da je donesena implementacija indikatora napretka operacije u naredbama koje se odnose na commit-graph (“git commit-graph write”, “git commit-graph verify”, itd.) u zajednički oblik s drugim naredbama. .). Indikator napretka sada se prema zadanim postavkama prikazuje samo za terminal (upotrijebite opciju "-[no-]progress" za promjenu ponašanja). Osim toga, dodan je novi konfiguracijski parametar fetch.writeCommitGraph koji omogućuje automatsko ažuriranje datoteke s grafom uvrštavanja tijekom operacija "git fetch" (svi upisi dohvaćeni iz vanjskih repozitorija odmah će ići u graf uvrštavanja bez potrebe za odvojeno pokrenite auto-gc);

  • Dodana naredba za brisanje povijesti promjena - "git filter-repo", što je jednostavnija alternativa naredbi "git filter-grana» za izvođenje operacija nad poviješću promjena u repozitoriju (na primjer, brisanje datoteke iz repozitorija ili dohvaćanje povijesti promjena u određenom direktoriju). Kako bi se poboljšala učinkovitost, umjesto urednog analiziranja obveza po obvezama, git filter-repo izvodi operacije na prikazu povijesti u obliku kontinuiranog toka.

    Filtriranje povijesti provodi se pomoću opcije “-path-{glob,regex}” koja vam omogućuje korištenje jednostavnih maski i regularnih izraza. Također postoje opcije za traženje i zamjenu ili čišćenje binarnih objekata koji su veći od navedene veličine. Svaki prepisani commit isporučuje se s novim SHA-1 hash identifikatorom i sve reference na zamijenjeni commit se ažuriraju u skladu s novim identifikatorom.

    Za prikaz sažetka statistike o repozitoriju (broj objekata prema tipu, najveće datoteke i direktoriji, koje ekstenzije zahtijevaju više prostora na disku, itd.), dostupna je opcija “-analiziraj”. Za proširenje funkcionalnosti moguće je povezati proizvoljne rukovatelje povratnim pozivima u Python, preko kojih možete kreirati nove podnaredbe i obrađivati ​​različite događaje (na primjer, nove vrste datoteka);

  • Dodana opcija "--end-of-options" za odvajanje opcija od naziva veza, koji mogu započeti znakom "-" i tretirati se kao opcije ("git log --end-of-options -super-dangerous-option" ). Ako se u svakodnevnom životu takva imena mogu izbjeći kao "git log 'refs/heads/—super-dangerous-option'", tada bi skripte mogle imati problema s definiranjem prostora imena. Općeprihvaćeni razdjelnik " - " nije primjenjiv u ovom slučaju, budući da se već koristi za odvajanje naziva veza od datoteka (na primjer, “git log —end-of-options —super-dangerous-option ^master — path/to /datoteka");
  • Dodane su opcije "--strategy" i "--strategy-option" u "git rebase --rebase-merges" za odabir strategije spajanja;
  • Dodan je novi rukovatelj ".git/hooks/pre-merge-commit" koji se poziva nakon što je spajanje dovršeno, ali prije nego što je napisano rezultirajuće predanje;
  • Podrška za dovršavanje konfiguracijskih varijabli u odnosu na postavke određenih naredbi dodana je mehanizmu za dovršavanje naredbi.
    Na primjer, ako trebate upisati "git -c core.autocrlf=false add path/to/my/file", ali se ne sjećate točnog naziva varijable "core.autocrlf", možete pritisnuti Tab i dobiti savjet.

Osim toga, Git programeri dodano kodeks ponašanja sudionika projekta koji definira osnovna načela za rješavanje konfliktnih situacija. Dokument se temelji na preporukama "Sporazum suradnika", koji se koristi u mnogim projektima otvorenog koda, uključujući Linux kernel, Eclipse, Freedesktop, GitLab, Ruby i Kubernetes. Dokument definira jednake mogućnosti za sve sudionike, neovisno o svjetonazoru, dobi, spolu, vjerskim opredjeljenjima, stupnju obrazovanja, društvenom statusu i nacionalnosti. U zajednici je dobrodošao prijateljski oblik komunikacije, razumijevanje, empatija za probleme drugih sudionika, prihvaćanje konstruktivne kritike i donošenje najboljih odluka za cijelu zajednicu. Trolanje, uvredljiva komunikacija, pokušaji ponižavanja, uznemiravanja, povrede privatnosti, odavanje osobnih podataka i drugi postupci koji se mogu smatrati neprikladnim za profesionalnu komunikaciju nisu dopušteni.

Izvor: opennet.ru

Dodajte komentar