ĂshtĂ« publikuar versioni 2.50 i sistemit tĂ« menaxhimit tĂ« kodit burimor tĂ« shpĂ«rndarĂ« Git. Git Ă«shtĂ« i njohur pĂ«r performancĂ«n e tij tĂ« lartĂ« dhe ofron mjete tĂ« zhvillimit jo-linear qĂ« bazohen nĂ« degĂ«zim dhe bashkim tĂ« degĂ«ve. PĂ«r tĂ« siguruar integritetin e historisĂ« dhe qĂ«ndrueshmĂ«rinĂ« ndaj ndryshimeve 'me retrospektivĂ«', pĂ«rdoren hashingu implicit i tĂ« gjithĂ« historisĂ« sĂ« mĂ«parshme nĂ« çdo commit, si dhe çertifikata me nĂ«nshkrime digjitale tĂ« zhvilluesve pĂ«r etiketa dhe commit-e tĂ« veçanta. Kodi i Git distribuohet nĂ«n licencĂ«n GPLv2+.
Në krahasim me versionin e kaluar, versioni i ri përmban 621 ndryshime, të përgatitura me pjesëmarrjen e 98 zhvilluesve, nga të cilët 35 po kontribuojnë për herë të parë në zhvillimin e tij. Risi kryesore:
- ĂshtĂ« zgjeruar mundĂ«sia e ndarjes nĂ« disa paketa tĂ« skedarĂ«ve bazĂ«n e objekteve tĂ« paarritshme ('cruft packs'), pĂ«r tĂ« cilat nĂ« repository nuk ka referenca (nuk referohen nga degĂ«t apo etiketat). PĂ«rdorimi i disa skedarĂ«ve pak tĂ« vegjĂ«l nĂ« vend tĂ« njĂ« skedari tĂ« madh, zvogĂ«lon ndjeshĂ«m operacionet e hyjni/dali gjatĂ« ri-paketimit tĂ« repository-ve me numĂ«r tĂ« madh objektesh tĂ« paarritshme, pasi pĂ«r çdo operacion ri-paketimi nuk Ă«shtĂ« e nevojshme tĂ« ribĂ«hen tĂ« gjithĂ« tĂ« dhĂ«nat.
Në versionin e ri, është propozuar opsioni '--combine-cruft-below-size', me të cilin është e mundur të organizohet bashkimi i skedarëve të tashëm pak, të cilët nuk e kalojnë një vlerë të caktuar. Ndryshe nga opsioni i mëparshëm '--max-cruft-size', opsioni i ri '--combine-cruft-below-size' nuk kufizon madhësinë maksimale të skedarit të rezultuar, çka e bën më efikase bashkimin e skedarëve të pak në repository-t me numër të madh objektesh të paarritshme, të shpërndara në disa skedarë pak.
- ĂshtĂ« shtuar mbĂ«shtetje eksperimentale pĂ«r pĂ«rditĂ«simin incremental tĂ« indekseve shumĂ«-pak (MIDX), ku çdo nivel tĂ« indekseve MIDX me informacionin e disponueshmĂ«risĂ« sĂ« objekteve vendoset nĂ« njĂ« skedar bitmap tĂ« veçantĂ«. NĂ« repository shumĂ« tĂ« mĂ«dha, forma e realizuar e indekseve ofron mundĂ«sinĂ« qĂ« me ardhjen e commit-eve tĂ« reja, tĂ« pĂ«rdoren shpejt dhe efikasitet tĂ« ri pĂ«r tĂ« shtuar hartat e reja tĂ« disponueshmĂ«risĂ« sĂ« objekteve.
- Nga kodi, Ă«shtĂ« eliminuar motori i vjetĂ«r pĂ«r ekzekutimin e operacioneve tĂ« bashkimit "recursive", pĂ«r t'u zĂ«vendĂ«suar nga njĂ« motor i ri i riformuar "ORT" (Ostensibly Recursiveâs Twin), qĂ« Ă«shtĂ« mĂ« i fuqishĂ«m, funksional dhe mĂ« i lehtĂ« pĂ«r t'u mbajtur. ORT lejon pĂ«rcaktimin e mundĂ«sisĂ« sĂ« bashkimit tĂ« dy objekteve pa krijuar objekte tĂ« reja nĂ« depo (me motorin e vjetĂ«r, ishte e nevojshme tĂ« ekzekutohej komanda "git merge-tree âwrite-tree", e cila regjistronte objekte tĂ« reja nĂ« depo). NĂ« Git 2.50, nĂ« komandĂ«n merge-tree Ă«shtĂ« implementuar opsioni "âquiet", i cili lejon verifikimin e mundĂ«sisĂ« sĂ« bashkimit bazuar nĂ« kodin e kthimit pa shkruar tĂ« dhĂ«na nĂ« depo.
- NĂ« "git cat-file âbatch" dhe komanda tĂ« ngjashme Ă«shtĂ« shtuar opsioni "âfilter", qĂ« lejon kalimin nĂ«pĂ«r disa objekte gjatĂ« ekzekutimit tĂ« operacionit. git cat-file âbatch-check='%(objectname)' âfilter='object:type=tree'
- Në komandën "git maintenance" janë implementuar tre veprime të reja: worktree-prune, rerere-gc dhe reflog-expire. Veprimi worktree-prune është i destinuar për të eliminuar pemët e punës (worktrees) të vjetra ose të dëmtuara në depo. Veprimi rerere-gc eliminon regjistrat e vjetër që mbeten pas zgjidhjes së konflikteve të bashkimit. Veprimi reflog-expire eliminoi objektet e vjetra të papërshtatshme nga reflog.
- ĂshtĂ« shtuar komanda "git reflog drop", e cila eliminon tĂ« gjitha tĂ« dhĂ«nat reflog pĂ«r degĂ«n e caktuar.
- ĂshtĂ« optimizuar pĂ«rpunimi dhe pĂ«rdorimi i referencave, pĂ«r shembull, Ă«shtĂ« implementuar caching i prefikseve tĂ« referencave, janĂ« eliminuar kontrollet e tepruara gjatĂ« ekzekutimit tĂ« komandĂ«s "git update-ref", duke rritur efikasitetin nĂ« kĂ«rkimin e iteratorĂ«ve ekzistues tĂ« referencave.
- Për bibliotekën cURL, janë shtuar cilësimet KeepAlive: http.keepAliveIdle, http.keepAliveInterval dhe http.keepAliveCount.
- Në komandën "git rev-list" është implementuar mundësia e daljeve në një format të përshtatshëm për analizimin nga makina, ku çdo fushë ndahet me karakterin NUL.
- Gjuha Perl është përjashtuar nga varësitë e nevojshme për utilitat që lidhen me dokumentacionin dhe ekzekutimin e setit të testeve ("make test"). Shumë një-linjëshi Perl në teste janë zëvendësuar me funksione shell ose janë riformuluar në gjuhën C.
- ĂshtĂ« shtuar njĂ« pĂ«rpunues userdiff pĂ«r formatin e skedave tĂ« konfigurimit "ini".
- Në komandën send-email është përmirësuar mbështetja për serverin SMTP të Outlook.
Burimi: opennet.ru
