Po treh mesecih razvoja je izšla različica distribuiranega sistema za upravljanje izvorno kodo Git 2.32. Git je eden najbolj priljubljenih, zanesljivih in visoko zmogljivih sistemov za upravljanje različic, ki ponuja fleksibilna orodja za nelinearni razvoj na osnovi vej in združevanja. Za zagotavljanje celovitosti zgodovine in odpornosti na spremembe 'retroaktivno' se uporablja implicitno hashiranje celotne prejšnje zgodovine v vsakem commit-u, prav tako je mogoče potrditi digitalne podpise razvijalcev posameznih oznak in commit-ov.
V novo različico je bilo sprejetih 617 sprememb, ki so jih pripravili 100 razvijalcev, od katerih je 35 prvič sodelovalo pri razvoju. Glavne novosti:
- V ukaz "git commit" je dodana možnost "—trailer [=]", ki poenostavi pripenjanje lastnih strukturiranih informacij (trailer) v formatu ključ/vrednost k commit-u, te informacije pa je mogoče obdelati z ukazom "interpret-trailers."
- Namesto mehanizma GIT_CONFIG_NOSYSTEM, ki se uporablja za preprečevanje branja iz skupne konfiguracijske datoteke za celoten sistem, je predlagano uporabo mehanizma GIT_CONFIG_SYSTEM, ki omogoča izrecno navedbo, iz katere datoteke je treba naložiti sistemske nastavitve, ter nastavitve GIT_CONFIG_GLOBAL za prepisovanje nastavitev, povezanih z posameznimi uporabniki v $HOME/.gitconfig. Dodelitev prazne vrednosti spremenljivki GIT_CONFIG_SYSTEM spremeni obnašanje na enakovredno GIT_CONFIG_NOSYSTEM.
- Pri uporabi druge različice komunikacijskega protokola Git je pri izvedbi "git push" implementirano določanje skupnega prednika na sprejemni strani, kar omogoča povečanje učinkovitosti delovanja "git push" na raven "git fetch" in izključuje prenos objektov, ki niso potrebni.
- Dodano je preprosto IPC-vmesnik, ki omogoča ustvarjanje storitev, kot je fsmonitor.
- Zakonodaja datotek ".gitattributes", ".gitignore" in ".mailmap" je prenehana, če so simbolične povezave.
- Za transport HTTP je dodana podpora za predpomnjenje gesla, ki je bilo uspešno uporabljeno za odklenitev certifikata.
- V ukazu "git stash show" je bila omogočena možnost prikazovanja nepovezanega dela shramba začasno odstranjenih datotek.
- Predlagana je naprednejša strategija ponovnega pakiranja repozitorija z ekipo «git repack», ki zniža porabo virov pri ponovnem pakiranju.
- V ekipi «git commit» je bila implementirana razširjena različica možnosti «—fixup» (ustvarjanje commita za «rebase —autosquash») — «—fixup=(reword|amend):», ki ponuja izbiro: spremeniti le sporočilo v dnevniku ali sporočilo in vsebino.
- V ekipi «git send-email» je bila upoštevana nastavitev core.hooksPath.
- V «git format-patch -v» je omogočena uporaba števcov, ki niso cela števila.
- V «git clone» je dodana možnost «—reject-shallow», ki omogoča prepoved kloniranja iz repozitorijev v načinu shallow (brez celotne zgodovine sprememb).
- V programu «gitweb» je dodan način skrivanja e-pošte, ki nadomešča podobne e-poštnim nizom pri izhodu.
- Logika obdelave ukaza «git apply —3way» se je spremenila; zdaj najprej poskuša uporabiti algoritem trojnega združevanja, in šele v primeru neuspeha ali nastanka konflikta se vrne na običajno uporabo popravka (prej je bilo obratno).
- V ekipi «git apply» je omogočeno sočasno navajanje možnosti «—3way» in «—cached».
- V Userdiff so dodani predlogi za jezik «Scheme».
- V ekipo «git log» je dodana možnost «—diff-merges=» in nastavitev log.diffMerges za izbiro privzetega načina.
- V ekipi «git add» in «git rm» je dodana dodatna zaščita pred spremembami podatkov v poteh, ki so zunaj območja delnega kloniranja (sparse checkout).
- V ekipi «git rev-list» je dodana možnost «—filter=object:type=» za izključitev določenega tipa objektov iz paketa, ki ga generira ukaz pack-objects.
- V «git pack-objects» je prepovedano navajanje negativnih vrednosti v možnostih, ki sprejemajo numerične vrednosti, kot sta «—window» in «—depth».
Izvor: opennet.ru
