Nakon tri mjeseca razvoja, objavljena je verzija distribuiranog sistema za upravljanje izvorom koda Git 2.46. Git je jedan od najpopularnijih, najpouzdanijih i najefikasnijih sistema za upravljanje verzijama, koji pruža fleksivne alate za nelinearni razvoj zasnovane na grananju i spajanju grana. Kako bi se osigurala cjelovitost povijesti i otpornost na promjene 'unazad', koristi se implicitno hashiranje cijele prethodne povijesti u svakoj komitacijskoj, a moguće je i verifikacija digitalnim potpisima pojedinih tagova i komita. Kod Gita distribuira se pod GPLv2+ licencom.
U odnosu na prethodnu verziju, nova verzija sadrži 746 promjena, koje su pripremili 96 programera, od kojih 31 prvi put učestvuje u razvoju. Glavne novine:
- Dodana je eksperimentalna podrška za novu vrstu bitmapa — 'pseudo-merge reachability bitmap', koja, za razliku od strukture 'reachability bitmap', čuva podatke o skupovima objekata povezanih sa komitima, ne vezano za svaki pojedinačni komit, već istovremeno za nekoliko komita. Ova organizacija omogućava korištenje jedne bitmap pri određivanju objekata za komite u različitim granama, što u velikim repozitorijima smanjuje potrebu za stvaranjem velikog broja pojedinačnih bitmapa i znatno ubrzava prolaz objekata prilikom određivanja koji objekti trebaju biti poslani klijentu prilikom izvođenja takvih operacija kao što su 'git fetch', 'git rev-list' i 'git clone'. Za aktiviranje nove vrste bitmapa i određivanje logike njihovog izbora i korištenja predložena je serija podešavanja 'bitmapPseudoMerge': git config bitmapPseudoMerge.all.pattern 'refs/(heads|tags)/' git config bitmapPseudoMerge.all.threshold now git config bitmapPseudoMerge.all.stableThreshold never git repack -adb
- Uveden je nov sučelje naredbenog retka za naredbu „git config“, u kojem su umjesto raspršenih opcija za pregled, preimenovanje i brisanje postavki i sekcija, kao što su „—get“, „—get-all“, „—unset“ i „—remove-section“, ponuđene odvojene podnaredbe. Na primjer, za ispis svih postavki repozitorija sada se može koristiti naredba „git config list“, a za pregled sadržaja određenog parametra - naredba „git config get “. Za dodatno filtriranje rezultata pomoću opcije „—regexp“ može se postaviti filtriranje na temelju regularnog izraza.
- Protokolu „credential helper“, koji se koristi za prijenos vjerodajnica prilikom pristupa repozitorijima s ograničenim pristupom, dodana je podrška za nova polja „authtype“ i „credential“, koja omogućuju stvaranje obraditelja za HTTP autentikaciju, ne ograničavajući se na provjeru korisničkog imena i lozinke, na primjer, prilikom korištenja Bearer Token-a u OAuth 2.0. Prije je za rad s takvim sustavima autentikacije bilo potrebno navesti povjerljive podatke u otvorenom obliku u parametru http.extraHeader. Pored toga, protokolu je dodana mogućnost pohranjivanja stanja svakog obraditelja vjerodajnica za podršku višestepenim metodama autentikacije, korištenim u protokolima kao što su NTLM i Kerberos.
- Nastavljeno je razvijanje eksperimentalne pozadine „reftable“ za učinkovito pohranjivanje u repozitoriju referenci na grane i oznake. Ova pozadina koristi blokovsko spremište, koje koristi projekt JGit i optimizirano je za pohranu vrlo velikog broja referenci (tradicionalni formati pohrane referenci dovode u repozitorijima s velikim brojem referenci do značajnih troškova zbog stavljanja vrlo velikog broja datoteka u jedan katalog u slučaju pohrane referenci u katalogu $GIT_DIR/ref ili potrebe za prepisivanjem jedne velike datoteke pri svakoj nadogradnji u slučaju pohrane referenci u datoteci $GIT_DIR/packed_refs). U novoj verziji dodana je naredba „git refs migrate —ref-format=reftable“ za prebacivanje postojećih repozitorija na pozadinu „reftable“ (ranije je pozadina uključena samo prilikom inicijalizacije repozitorija).
- Dodana je opcija „—no-advice“ u git, koja isključuje sve poruke s preporukama i savjetima, što može biti korisno za sprječavanje pretrpanosti dnevnika suvišnim informacijama prilikom automatskog poziva gita.
- Započeo je proces prevođenja nekih provjera iz skupa testova na korištenje unit-testova, što će pojednostaviti testiranje niskorazinskih komponenti i povećati učinkovitost procesa testiranja na platformi Windows, koja trpi velike troškove prilikom pokretanja velikog broja procesa za vrijeme izvođenja testova implementiranih kao shell skripte.
- U kod za parsiranje podešavanja boja dodana je mogućnost korištenja prikaza „#RGB“ osim „#RRGGBB“.
Izvor: opennet.ru
