lëshimi i sistemit të distribuar të menaxhimit të kodit burimor . Git është një nga sistemet më të njohura, të besueshme dhe me performancë të lartë për menaxhimin e versioneve, që ofron mjete fleksibile për zhvillimin jolinear, 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 hashingu implicit i gjithë historisë së mëparshme në çdo commit, gjithashtu është e mundur vërtetimi me nënshkrime digjitale të etiketave dhe komiteve të veçanta.
Krahasuar me versionin e mëparshëm, në versionin e ri janë përfshirë 504 ndryshime, të përgatitura me pjesëmarrjen e 64 zhvilluesve, prej të cilëve 12 morën pjesë për herë të parë në zhvillim. :
- ĂshtĂ« aktivizuar si parazgjedhje kalimi nĂ« tĂ« protokollit tĂ« komunikimit Git, i cili pĂ«rdoret gjatĂ« lidhjes nĂ« distancĂ« tĂ« klientit me serverin Git. Versioni i dytĂ« i protokollit dallohet pĂ«r mundĂ«sinĂ« e filtrimit tĂ« degĂ«ve dhe etiketave nĂ« anĂ«n e serverit, duke i dĂ«rguar klientit njĂ« listĂ« tĂ« shkurtuar referencash. MĂ« parĂ«, gjatĂ« ekzekutimit tĂ« çdo komande tĂ«rheqjeje, klientit i dĂ«rgohej gjithmonĂ« lista e plotĂ« e referencave nĂ« tĂ« gjithĂ« depozitĂ«n, edhe kur klienti pĂ«rditĂ«sonte vetĂ«m njĂ« degĂ« ose kontrollonte nĂ«se kopja e tij e depozitĂ«s ishte aktuale. NjĂ« risi tjetĂ«r e rĂ«ndĂ«sishme Ă«shtĂ« mundĂ«sia pĂ«r tĂ« shtuar veçori tĂ« reja nĂ« protokoll me shfaqjen e funksionaliteteve tĂ« reja nĂ« mjetet e pĂ«rdorura. Kodi i klientit mbetet i pajtueshĂ«m me protokollin e vjetĂ«r dhe mund tĂ« vazhdojĂ« tĂ« punojĂ« si me serverĂ« tĂ« rinj ashtu edhe me ata tĂ« vjetĂ«r, duke u kthyer automatikisht te versioni i parĂ« nĂ«se serveri nuk e mbĂ«shtet tĂ« dytin.
- NĂ« komandĂ«n «git config» Ă«shtĂ« shtuar opsioni «âshow-scope», i cili e bĂ«n mĂ« tĂ« lehtĂ« pĂ«rcaktimin e vendit ku janĂ« pĂ«rkufizuar cilĂ«sime tĂ« caktuara. Git lejon pĂ«rcaktimin e cilĂ«simeve nĂ« vende tĂ« ndryshme: nĂ« depozitĂ« (.git/info/config), nĂ« drejtorinĂ« e pĂ«rdoruesit (~/.gitconfig), nĂ« skedarin e konfigurimit tĂ« sistemit (/etc/gitconfig), si edhe pĂ«rmes opsioneve tĂ« rreshtit tĂ« komandĂ«s dhe variablave tĂ« mjedisit. GjatĂ« ekzekutimit tĂ« «git config», Ă«shtĂ« mjaft e vĂ«shtirĂ« tĂ« kuptohet saktĂ«sisht ku Ă«shtĂ« pĂ«rcaktuar cilĂ«simi i kĂ«rkuar. PĂ«r zgjidhjen e kĂ«saj detyre ishte i disponueshĂ«m opsioni «âshow-origin», por ai tregon vetĂ«m rrugĂ«n e skedarit ku Ă«shtĂ« pĂ«rcaktuar cilĂ«simi, gjĂ« qĂ« Ă«shtĂ« e dobishme nĂ«se synoni tĂ« redaktoni skedarin, por nuk ndihmon nĂ«se duhet tĂ« ndryshoni vlerĂ«n pĂ«rmes «git config» duke pĂ«rdorur opsionet «âsystem», «âglobal» ose «âlocal». Opsioni i ri «âshow-scope» shfaq kontekstin e pĂ«rcaktimit tĂ« variablave dhe mund tĂ« pĂ«rdoret sĂ« bashku me «âshow-origin»:
$ git âlist âshow-scope âshow-origin
global file:/home/user/.gitconfig diff.interhunkcontext=1
global file:/home/user/.gitconfig push.default=current
[âŠ]
local file:.git/config branch.master.remote=origin
local file:.git/config branch.master.merge=refs/heads/master$ git config âshow-scope âget-regexp âdiff.*â
global diff.statgraphwidth 35
local diff.colormoved plain$ git config âglobal âunset diff.statgraphwidth
- NĂ« cilĂ«simet e lidhjes sĂ« Lejohet pĂ«rdorimi i maskave nĂ« URL. Ădo konfigurim HTTP dhe tĂ« dhĂ«nat e hyrjes nĂ« Git mund tĂ« caktohen si pĂ«r tĂ« gjitha lidhjet (http.extraHeader, credential.helper), ashtu edhe pĂ«r lidhje tĂ« lidhura me njĂ« URL tĂ« caktuar (credential.https://example.com.helper, credential.https://example.com.helper). Deri mĂ« tani, pĂ«rdorimi i maskave si *.example.com lejohej vetĂ«m pĂ«r konfigurimet HTTP, por nuk mbĂ«shtetej pĂ«r lidhjen e tĂ« dhĂ«nave tĂ« hyrjes. NĂ« Git 2.26 kĂ«to dallime janĂ« hequr dhe, pĂ«r shembull, pĂ«r tĂ« lidhur njĂ« emĂ«r pĂ«rdoruesi me tĂ« gjitha nĂ«n-domenet tani mund tĂ« specifikoni:
[credential «https://*.example.com»]
username = ttaylorr
- ĂshtĂ« vazhduar zgjerimi i mbĂ«shtetjes eksperimentale pĂ«r klonimin e pjesshĂ«m (partial clones), i cili mundĂ«son transferimin vetĂ«m tĂ« njĂ« pjese tĂ« tĂ« dhĂ«nave dhe punĂ«n me njĂ« kopje jo tĂ« plotĂ« tĂ« depozitĂ«s. NĂ« versionin e ri Ă«shtĂ« shtuar komanda e re «git sparse-checkout add», e cila lejon shtimin e direktorive tĂ« veçanta pĂ«r tĂ« zbatuar operacionin «checkout» vetĂ«m mbi njĂ« pjesĂ« tĂ« pemĂ«s sĂ« punĂ«s, nĂ« vend qĂ« tĂ« listohen tĂ« gjitha kĂ«to direktori njĂ«herĂ«sh pĂ«rmes komandĂ«s «git sparse-checkout set» (mund tĂ« shtohen njĂ« nga njĂ«, pa ricaktuar çdo herĂ« tĂ« gjithĂ« listĂ«n).
PĂ«r shembull, pĂ«r tĂ« klonuar depozitĂ«n git/git pa transferuar blob-et, duke e kufizuar checkout-in vetĂ«m te drejtoria rrĂ«njĂ« e kopjes sĂ« punĂ«s dhe duke shĂ«nuar veçmas pĂ«r nxjerrje direktoritĂ« «t» dhe «Documentation», mund tĂ« specifikoni:$ git clone âfilter=blob:none âsparse git@github.com:git/git.git
$ cd git
$ git sparse-checkout init âcone$ git sparse-checkout add t
âŠ.
$ git sparse-checkout add Documentation
âŠ.
$ git sparse-checkout list
Documentation
t - ĂshtĂ« rritur ndjeshĂ«m performanca e komandĂ«s «git grep», e pĂ«rdorur pĂ«r kĂ«rkim si nĂ« pĂ«rmbajtjen aktuale tĂ« depozitĂ«s, ashtu edhe nĂ« revizionet historike. PĂ«r tĂ« pĂ«rshpejtuar kĂ«rkimin, lejohej skanimi i pĂ«rmbajtjes sĂ« pemĂ«s sĂ« punĂ«s duke pĂ«rdorur disa rrjedha («git grep âthreads»), por kĂ«rkimi nĂ« revizionet historike ishte njĂ«rrjedhĂ«sh. Tani ky kufizim Ă«shtĂ« hequr falĂ« zbatimit tĂ« mundĂ«sisĂ« pĂ«r tĂ« paralelizuar operacionet e leximit nga ruajtĂ«si i objekteve. Si parazgjedhje, numri i rrjedhave caktohet i barabartĂ« me numrin e bĂ«rthamave tĂ« CPU-sĂ«, kĂ«shtu qĂ« nĂ« shumicĂ«n e rasteve nuk Ă«shtĂ« mĂ« e nevojshme tĂ« vendoset shprehimisht opsioni «âthreads».
- ĂshtĂ« shtuar mbĂ«shtetja pĂ«r autokompletimin e futjes sĂ« nĂ«nkomandave, shtigjeve, referencave dhe argumenteve tĂ« tjera tĂ« komandĂ«s «git worktree», e cila mundĂ«son punĂ«n me disa kopje pune tĂ« depozitĂ«s.
- ĂshtĂ« shtuar mbĂ«shtetja pĂ«r ngjyrat e ndezura, pĂ«r tĂ« cilat ekzistojnĂ« sekuenca ANSI escape. PĂ«r shembull, te cilĂ«simet e ngjyrave tĂ« theksimit «git config âcolor» ose «git diff âcolor-moved», pĂ«rmes opsionit «âformat» pĂ«r blu tĂ« hapur tĂ« ndezur mund tĂ« specifikohet «%C(brightblue)».
- ĂshtĂ« shtuar njĂ« version i ri i skriptit , qĂ« siguron integrim me mekanizmin pĂ«r tĂ« pĂ«rshpejtuar gjurmimin e ndryshimeve tĂ« skedarĂ«ve dhe shfaqjen e skedarĂ«ve tĂ« rinj. Pas pĂ«rditĂ«simit tĂ« git kĂ«rkohet hook nĂ« depo.
- Janë shtuar optimizime për të përshpejtuar operacionet e klonimit të pjesshëm (partial clones), të lidhura me përdorimin e hartave bit
(bitmap machinery) pĂ«r tĂ« shmangur kalimin e plotĂ« tĂ« tĂ« gjitha objekteve gjatĂ« filtrimit tĂ« dĂ«rgimit. Kontrolli i blob-eve (âfilter=blob:none dhe âfilter=blob:limit=n) gjatĂ« klonimit tĂ« pjesshĂ«m tani kryhet
dukshĂ«m mĂ« shpejt. GitHub njoftoi pĂ«r pĂ«rdorimin e patch-eve me kĂ«to optimizime dhe pĂ«r mbĂ«shtetje eksperimentale pĂ«r klonimin e pjesshĂ«m. - Komanda «git rebase» Ă«shtĂ« kaluar nĂ« njĂ« backend tjetĂ«r, i cili pĂ«rdor si parazgjedhje mekanizmin âmergeâ (mĂ« parĂ« pĂ«rdorej pĂ«r «rebase -i») nĂ« vend tĂ« âpatch+applyâ. NĂ« disa hollĂ«si tĂ« vogla backend-et ndryshojnĂ«; pĂ«r shembull, pas vazhdimit tĂ« operacionit pas zgjidhjes sĂ« konfliktit (git rebase âcontinue), backend-i i ri propozon tĂ« redaktohet mesazhi i commit-it, ndĂ«rsa i vjetri thjesht pĂ«rdorte mesazhin ekzistues. PĂ«r tĂ« rikthyer sjelljen e vjetĂ«r mund tĂ« pĂ«rdoret opsioni «âapply» ose tĂ« caktohet ndryshorja e konfigurimit ârebase.backendâ me vlerĂ«n âapplyâ.
- Shembulli i përpunuesit të parametrave të autentikimit, të përcaktuar përmes .netrc, është sjellë në një formë të gatshme për përdorim menjëherë.
- ĂshtĂ« shtuar cilĂ«simi gpg.minTrustLevel pĂ«r tĂ« pĂ«rcaktuar nivelin minimal tĂ« besimit pĂ«r elemente tĂ« ndryshme qĂ« kryejnĂ« verifikimin e nĂ«nshkrimit dixhital.
- Te «git rm» dhe «git stash» Ă«shtĂ« shtuar opsioni «âpathspec-from-file».
- U vazhdua përmirësimi i paketave të testeve në kuadër të përgatitjes për kalimin te algoritmi i hashimit SHA-2 në vend të SHA-1.
Burimi: opennet.ru
