Pasi kaluan tre muaj zhvillimi, është publikuar lëshimi i sistemit të shpërndarë të menaxhimit të teksteve burimore Git 2.36. Git është një prej sistemeve më të njohura, të sigurta dhe me performancë të lartë për menaxhimin e versioneve, e cila ofron mjete fleksibël për zhvillimin jolinjare, e cila bazohet në degëzimin dhe bashkimin e degëve. Për të siguruar integritetin e historisë dhe qëndrueshmërinë ndaj ndryshimeve 'me pas' përdoret hashing-u implicit i gjithë historisë së mëparshme në çdo commit, siç është e mundur edhe të verifikohet me nënshkrime digjitale nga zhvilluesit e etiketimeve dhe commit-eve të veçanta.
Në krahasim me lëshimin e kaluar, në këtë version janë pranuar 717 ndryshime, të përgatitura nga 96 zhvillues, nga të cilët 26 morën pjesë për herë të parë në zhvillim. Novitetet kryesore:
- Opsioni 'âremerge-diff' Ă«shtĂ« shtuar nĂ« komandat 'git log' dhe 'git show', duke lejuar tĂ« tregoni dallimet midis rezultatit tĂ« pĂ«rbashkĂ«t tĂ« bashkimit dhe tĂ« dhĂ«nave efektive, tĂ« reflektuara nĂ« commit pas pĂ«rpunimit tĂ« komandĂ«s 'merge', e cila lejon tĂ« vlerĂ«soni qartĂ« ndryshimet, tĂ« kryera si rezultat i zgjidhjes sĂ« konflikteve gjatĂ« bashkimit. Komanda e zakonshme 'git show' ndan zgjidhjet e ndryshme tĂ« konflikteve me njĂ« hapĂ«sirĂ«, e cila e bĂ«n tĂ« vĂ«shtirĂ« kuptimin e ndryshimeve. PĂ«r shembull, nĂ« skrinshot-in mĂ« poshtĂ«, linjat '±' pa hapĂ«sirĂ« tregojnĂ« zgjidhjen e fundit tĂ« konfliktit, lidhur me rinovimin nĂ« degĂ«n e parĂ« sha1 nĂ« oid nĂ« koment, ndĂ«rsa '±' me hapĂ«sirĂ« tregon zgjidhjen fillestare tĂ« konfliktit, e shkaktuar nga shfaqja nĂ« degĂ«n e dytĂ« tĂ« njĂ« argumenti tĂ« shtuar nĂ« funksionin dwim_ref().

Kur pĂ«rdoret opsioni 'âremerge-diff', dallimet midis zgjidhjeve tĂ« konflikteve nuk ndahen pĂ«r çdo degĂ« prindĂ«rore, por tregohen dallimet e pĂ«rbashkĂ«ta midis skedarit qĂ« ka konflikte bashkimi dhe skedarit nĂ« tĂ« cilin janĂ« zgjidhur konfliktet.

- ĂshtĂ« rritur fleksibiliteti nĂ« rregullimin e sjelljes pĂ«r rivendosjen e keshtjellave diskore pĂ«rmes thirrjes sĂ« funksionit fsync(). Parametri i disponueshĂ«m mĂ« parĂ« core.fsyncObjectFiles Ă«shtĂ« ndarĂ« nĂ« dy variabla konfigurimi core.fsync dhe core.fsyncMethod, duke ofruar mundĂ«sinĂ« pĂ«r tĂ« aplikuar fsync jo vetĂ«m nĂ« skedarĂ«t me objekte (.git/objects), por edhe nĂ« struktura tĂ« tjera git, siç janĂ« lidhjet (.git/refs), reflog dhe skedarĂ«t e paketave.
Me anë të variablit core.fsync, mund të specifikohet një listë e strukturave të brendshme të Git, për të cilat do të thirret dodat fsync pas operacionit të shkruar. Variabli core.fsyncMethod lejon të zgjidhet metoda për të hequr cache-në, për shembull, mund të zgjidhet fsync për të përdorur thirrjen sistemike me të njëjtin emër, ose të specifikohet writeout-only për të përdorur shkrimin e vonuar (pagecache writeback).
- Për të mbrojtur nga dobësitë, që manipulojnë me zëvendësimin nga përdorues të tjerë të katalogëve .git në ndarjet e ndara, është përforcuar kontrolli i pronarëve të depozites. Të gjitha komandat git tani lejohet të ekzekutohen vetëm në katalogët e tyre " .git ". Nëse katalogu i depozitës i përket një përdoruesi tjetër, për default do të jepet një gabim. Kjo sjellje mund të çaktivizohet me anë të konfigurimit safe.directory.
- NĂ« komandĂ«n "git cat-file", e destinuar pĂ«r tĂ« outputuar pĂ«rmbajtjen origjinale tĂ« objekteve Git, Ă«shtĂ« shtuar opsioni "âbatch-command", i cili plotĂ«son komandat e mĂ«parshme "âbatch" dhe "âbatch-check" me mundĂ«sinĂ« pĂ«r tĂ« zgjedhur adaptivisht llojin e output-it duke treguar "contents " pĂ«r tĂ« outputuar pĂ«rmbajtjen, ose "info " pĂ«r tĂ« outputuar informacionin mbi objektin. PĂ«r mĂ« tepĂ«r, Ă«shtĂ« pĂ«rkrahur komanda "flush" pĂ«r tĂ« hequr buffer-in e output-it.
- NĂ« komandĂ«n "git ls-tree", e destinuar pĂ«r tĂ« formuar njĂ« listĂ« tĂ« pĂ«rmbajtjes sĂ« pemĂ«s sĂ« objekteve, Ă«shtĂ« shtuar opsioni "âoid-only" ("âobject-only"), nĂ« analogji me "âname-only" qĂ« outputon vetĂ«m identifikuesit e objekteve pĂ«r ta bĂ«rĂ« thirrjen mĂ« tĂ« thjeshtĂ« nga skriptet. Gjithashtu Ă«shtĂ« realizuar opsioni "âformat" qĂ« lejon tĂ« pĂ«rcaktohet formati i personalizuar i output-it, duke kombinuar informacionin mbi modin, llojin, emrin dhe madhĂ«sinĂ«.
- Në komandën "git bisect run", është realizuar përcaktimi i mos-shfaqjes së një flagu për skriptin si një skedë ekzekutimi dhe outputi në këtë rast i gabimeve me kodet 126 ose 127 (më parë, nëse skenari nuk mund të ishte nisur, të gjitha revizionet shënoheshin si të dëmtuara).
- NĂ« komandĂ«n "git fetch" Ă«shtĂ« shtuar opsioni "ârefetch" pĂ«r tĂ« nxjerrĂ« tĂ« gjithĂ« objektet pa informuar palĂ«n tjetĂ«r pĂ«r pĂ«rmbajtjen, qĂ« tashmĂ« Ă«shtĂ« nĂ« sistemin lokal. NjĂ« sjellje e tillĂ« mund tĂ« jetĂ« e dobishme pĂ«r rikthimin nĂ« njĂ« gjendje pas dĂ«shtimesh, kur nuk Ă«shtĂ« e sigurt pĂ«r integritetin e tĂ« dhĂ«nave lokale.
- Në komandat «git update-index», «git checkout-index», «git read-tree» dhe «git clean» u shtua mbështetje për indekset pjesore (sparse index), duke lejuar përmirësimin e performancës dhe kursimin e hapësirës në depot ku kryhen operacione të klonimit të pjesshëm (sparse-checkout).
- SĂ« fundmi Ă«shtĂ« ndryshuar sjellja e komandĂ«s «git clone âfilter=⊠ârecurse-submodules», e cila tani çon nĂ« klonimin e pjesshĂ«m tĂ« submoduleve (mĂ« parĂ«, gjatĂ« ekzekutimit tĂ« komandave tĂ« tilla, filtri aplikohej vetĂ«m nĂ« pĂ«rmbajtjen kryesore, ndĂ«rsa submodulet klonoheshin plotĂ«sisht pa marrĂ« parasysh filtrin).
- Në komandën «git bundle» u shtua mbështetje për specifikimin e filtrave për vendosjen selektive të përmbajtjes, në mënyrë të ngjashme me operacionet e klonimit të pjesshëm.
- NĂ« komandĂ«n «git branch» u shtua mundĂ«sia «ârecurse-submodules» pĂ«r kalimin rekurziv nĂ«pĂ«r submodule.
- Në userdiff u propozua një përpunues i ri për gjuhën Kotlin.
Burimi: opennet.ru


