Izdanje kontrole izvora Git 2.39

Nakon dva mjeseca razvoja, objavljen je distribuirani sustav kontrole izvora Git 2.39. 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 predanju; također je moguće certificirati pojedinačne oznake i predaje digitalnim potpisima programera.

U usporedbi s prethodnim izdanjem, nova verzija uključuje 483 izmjene, pripremljene uz sudjelovanje 86 programera, od kojih je 31 prvi put sudjelovao u razvoju. Glavne inovacije:

  • Naredba “git shortlog”, dizajnirana za prikaz sažetaka sa statistikom iz povijesti promjena, dodala je opciju “-group” za proizvoljno grupiranje obveza prema poljima koja nisu ograničena na autora ili izvršitelja. Na primjer, za prikaz popisa programera s informacijama o broju promjena, uzimajući u obzir pomagače navedene u polju "Koautor", možete koristiti naredbu: git shortlog -ns --group=author - -group=trailer:co-authored-by

    Shortlog izlaz može se agregirati korištenjem specifičara oblikovanja, a opcija “--group” može značajno pojednostaviti stvaranje složenih izvješća i eliminirati potrebu za dodatnim naredbama za sortiranje. Na primjer, da biste stvorili izvješće s informacijama o tome koliko je obveza za određeno izdanje prihvaćeno u svakom mjesecu, možete navesti: git shortlog v2.38.0.. —date='format:%Y-%m' —group=' %cd' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 Prethodno je za izvođenje slične operacije bilo potrebno koristiti pomoćne programe za sortiranje i uniq: git log v2.38.0 .. —date='format:%Y -%m' —format='%cd' | sortirati | jedinstven -c

  • Proširene su mogućnosti mehanizma "cruft packs", dizajniranog za pakiranje nedostupnih objekata koji nisu navedeni u repozitoriju (nisu navedeni u granama ili oznakama). Nedostupne objekte briše sakupljač smeća, ali ostaju u spremištu određeno vrijeme prije nego što se izbrišu kako bi se izbjegli uvjeti utrke. Mehanizam “cruft packs” omogućuje pohranjivanje svih nedostupnih objekata u jednu datoteku pakiranja, te prikaz podataka o vremenu izmjene svakog objekta u posebnoj tablici, pohranjenoj u zasebnoj datoteci s ekstenzijom “.mtimes”, tako da ne preklapaju s ukupnim vremenom izmjene.

    Duljina vremena u kojem nedostupni objekti ostaju u repozitoriju prije nego što se stvarno izbrišu određena je opcijom “—prune=” " Međutim, iako je odgoda prije brisanja prilično učinkovit i praktičan način za sprječavanje oštećenja repozitorija zbog uvjeta utrke, nije 100% pouzdan. Kako bi se olakšalo vraćanje oštećenog repozitorija, novo izdanje pruža mogućnost spremanja objekata koji nedostaju dodavanjem opcije “--expire-to” naredbi “git repack”, koja vam omogućuje da odredite datoteku za stvaranje vanjskog kopija svih izbrisanih objekata. Na primjer, da biste spremili nedostupne objekte koji se nisu promijenili u zadnjih 5 minuta u datoteku backup.git, možete koristiti naredbu: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -to=../backup.git

  • Značajno povećana (do 70%) brzina operacije "git grep -cached" prilikom pretraživanja u područjima koja koriste djelomično kloniranje (sparse-checkout) i za koja postoje djelomični indeksi (sparse index). Prethodno, prilikom navođenja opcije "-cached", pretraživanje se prvo provodilo u redovnom indeksu, a zatim u djelomičnom, što je dovelo do primjetnih kašnjenja pri pretraživanju velikih repozitorija.
  • Izvršenje je ubrzano poslužitelja Provjera povezanosti novih objekata prije njihovog postavljanja u repozitorij tijekom git push operacije. Prelaskom na razmatranje samo deklariranih poveznica tijekom provjere, u testnom repozitoriju sa 7 milijuna poveznica, od kojih je samo 3% pokriveno push operacijom, ove optimizacije su smanjile vrijeme provjere za 4.5 puta.
  • Za zaštitu od mogućih prekoračenja cijelih brojeva u kodu, naredba "git apply" ograničava maksimalnu veličinu zakrpa koje se mogu obraditi. Ako veličina zakrpe premašuje 1 GB, sada će se prikazati pogreška.
  • Radi zaštite od mogućih ranjivosti, napravljene su promjene za čišćenje nepotrebnih informacija iz postavljenih zaglavlja kada se koristi modul h2h3 s opcijom GIT_TRACE_CURL=1 ili GIT_CURL_VERBOSE=1 zajedno s HTTP/2.
  • Prilikom izvođenja odjave na grani koja je simbolička veza na drugu granu, naredba "git symbolic-ref HEAD" sada prikazuje naziv ciljne grane umjesto imena simboličke veze.
  • Dodana je podrška za argument @{-1} opciji “--edit-description” (“git branch —edit-description @{-1}”) za uređivanje opisa prethodne grane.
  • Dodana naredba "git merge-tree --stdin" za prosljeđivanje popisa parametara putem standardnog unosa.
  • Na mrežnim datotečnim sustavima, rukovatelj fsmonitor, koji prati promjene u datotečnom sustavu, onemogućen je prema zadanim postavkama.

Izvor: opennet.ru

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