Pas tri muajsh zhvillimi, u publikua lirimi i sistemit të shpërndarë të menaxhimit të kodeve burimore Git 2.36. Git është një nga sistemet më të njohura, të besueshme dhe me performancë të lartë për menaxhimin e versioneve, duke ofruar mjete fleksibël për zhvillimin jo linear, të bazuara në degëzimin dhe bashkimin e degëve. Për të siguruar integritetin e historisë dhe qëndrueshmërinë ndaj ndryshimeve "mbrapa në kohë", përdoret një heshim implicit i tërë historisë së mëparshme në çdo commit, siç është e mundur verifikimi me nënshkrime digjitale të zhvilluesve për etiketat dhe commitet individuale.
Në krahasim me versionin e kaluar, versioni i ri përmban 717 ndryshime, të përgatitura nga 96 zhvillues, prej të cilëve 26 morën pjesë për herë të parë në zhvillim. Novitet kryesore janë:
- NĂ« komandat "git log" dhe "git show" Ă«shtĂ« shtuar opsioni "âremerge-diff", i cili lejon tĂ« tregoni ndryshimet midis rezultatit tĂ« zakonshĂ«m tĂ« bashkimit dhe tĂ« dhĂ«nave aktuale, siç reflektohen nĂ« commit pas pĂ«rfundimit tĂ« komandĂ«s "merge", çka lejon vlerĂ«simin vizual tĂ« ndryshimeve tĂ« kryera si rezultat i zgjidhjes sĂ« konflikteve gjatĂ« bashkimit. Komanda e zakonshme "git show" ndan ndryshimet e ndryshimeve tĂ« zgjidhura me hapĂ«sira, duke e vĂ«shtirĂ«suar kuptimin e ndryshimeve. PĂ«r shembull, nĂ« screenshotin mĂ« poshtĂ« linjat "+/-" pa hapĂ«sira tregojnĂ« zgjidhjen mĂ« tĂ« fundit tĂ« konfliktit, e lidhur me rinomin e pjesĂ«s sĂ« parĂ« nga sha1 nĂ« oid nĂ« koment, ndĂ«rsa "+/-" me hapĂ«sirĂ« tregon zgjidhjen fillestare tĂ« konfliktit, qĂ« shkaktohet nga shfaqja e njĂ« argumenti shtesĂ« nĂ« funksionin dwim_ref().

Duke pĂ«rdorur opsionin "âremerge-diff", ndryshimet midis zgjidhjeve tĂ« konflikteve nuk ndahen pĂ«r secilĂ«n degĂ« prindĂ«rore, por tregohen ndryshime tĂ« pĂ«rgjithshme midis skedarit qĂ« ka konflikte bashkimi dhe skedarit, nĂ« tĂ« cilin konflikti Ă«shtĂ« zgjidhur.

- Shkëmbi i sjelljes për rivendosjen e caches të diskut është rritur nëpërmjet thirrjes së funksionit fsync(). Parametri që ishte në dispozicion 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 për skedarët me objekte (.git/objects), por gjithashtu për struktura të tjera git, siç janë lidhjet (.git/refs), reflog dhe skedarët pack.
Përmes variablës core.fsync mund të specifikohet një listë e strukturave të brendshme Git, për të cilat, pas operacionit të shkruar, do të thirret gjithashtu fsync. Variabla core.fsyncMethod lejon të zgjidhni metodën për rivendosjen e caches, për shembull, mund të zgjidhni fsync për të aplikuar thirrjen sistemike të njëjtë ose përcaktoni writeout-only për të aplikuar shkrimin e vonuar (pagecache writeback).
- Për të mbrojtur nga dobësitë që manipulojnë zëvendësimin nga përdoruesit e tjerë të katalogëve .git në ndarjet e ndara, kontrolli i pronësisë së depozitës është forcuar. Kryerja e çdo komande git tani lejohet vetëm në kataloget e saj " .git". Nëse katalogu me depozitat i përket një përdoruesi tjetër, do të jepet një gabim si parazgjedhje. Ky sjellje mund të fiket përmes konfigurimit safe.directory.
- NĂ« komandĂ«n "git cat-file", e cila Ă«shtĂ« menduar pĂ«r tĂ« shfaqur pĂ«rmbajtjen burimore tĂ« objekteve Git, Ă«shtĂ« shtuar opsioni "âbatch-command", i cili zgjerohet nga komandat e mĂ«parshme "âbatch" dhe "âbatch-check" duke bĂ«rĂ« tĂ« mundur zgjedhjen adaptuese tĂ« tipit tĂ« daljes pĂ«rmes pĂ«rcaktimit "contents " pĂ«r tĂ« paraqitur pĂ«rmbajtjen ose "info " pĂ«r tĂ« shfaqur informacion mbi objektin. Gjithashtu, komanda "flush" mbĂ«shtetet pĂ«r tĂ« shkuar nĂ« bufferin e daljes.
- NĂ« komandĂ«n "git ls-tree", qĂ« Ă«shtĂ« menduar pĂ«r tĂ« formuar njĂ« listĂ« tĂ« pĂ«rmbajtjes sĂ« pemĂ«s sĂ« objekteve, Ă«shtĂ« shtuar opsioni "âoid-only" ("âobject-only"), nĂ« ngjashmĂ«ri me "âname-only" qĂ« tregon vetĂ«m identifikuesit e objekteve pĂ«r tĂ« thjeshtuar thirrjen nga skenaret. Gjithashtu, Ă«shtĂ« realizuar opsioni "âformat" qĂ« lejon pĂ«rcaktimin e formatit tĂ« daljes, duke kombinuar informacionin rreth modit, tipit, emrit dhe madhĂ«sisĂ«.
- Në komandën "git bisect run" është realizuar përcaktimi për mos-shfaqjen e një by-pass për skriptin si një skedë e ekzekutueshme dhe shfaqjen e njëltash, nëse nuk mund të ekzekutohet, me kodet e gabimeve 126 ose 127 (më parë, nëse skripti nuk mund të niste, të gjitha rishikimet u shënuan si me probleme).
- NĂ« komandĂ«n "git fetch" Ă«shtĂ« shtuar opsioni "ârefetch" pĂ«r tĂ« marrĂ« tĂ« gjitha objektet pa e informuar palĂ«n tjetĂ«r pĂ«r pĂ«rmbajtjen qĂ« tashmĂ« Ă«shtĂ« nĂ« sistemin lokal. Ky sjellje mund tĂ« jetĂ« e dobishme pĂ«r rikuperimin e gjendjes pas dĂ«shtimeve, kur nuk ka siguri pĂ«r integritetin e tĂ« dhĂ«nave lokale.
- Në komandat "git update-index", "git checkout-index", "git read-tree" dhe "git clean" është shtuar mbështetje për indekse të pjesshme (sparse index), duke ndihmuar në përmirësimin e performancës dhe ruajtjen e hapësirës në depo të cilat kryejnë operacione të klonimit të pjesshëm (sparse-checkout).
- Ă ndryshuar sjellja e komandĂ«s «git clone âfilter=⊠ârecurse-submodules», e cila tani çon nĂ« klonimin e pjesshĂ«m tĂ« submodulave (mĂ« parĂ« gjatĂ« ekzekutimit tĂ« komandave tĂ« tilla, filtrimi aplikohej vetĂ«m pĂ«r pĂ«rmbajtjen kryesore, ndĂ«rsa submodulat klonoheshin plotĂ«sisht pa marrĂ« parasysh filtrin).
- Në komandën «git bundle» është shtuar mbështetje për specifikimin e filtrave për të vendosur përmbajtjen në mënyrë selektive, në përputhje me operacionet e klonimit të pjesshëm.
- NĂ« komandĂ«n «git branch» Ă«shtĂ« shtuar opsioni «ârecurse-submodules» pĂ«r kalimin recursiv tĂ« submodulave.
- Në userdiff është propozuar një përpunues i ri për gjuhën Kotlin.
Burimi: opennet.ru


