lëshimi i sistemit të shpërndarë 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, duke ofruar mjete fleksibile për zhvillim 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 'për pas', përdoret hash-i i implicit i gjithë historisë së mëparshme në çdo commit, siç është e mundur edhe verifikimi me firma digjitale të zhvilluesve të etiketimeve dhe commit-eve të veçanta.
Në krahasim me lëshimin e kaluar, versioni i ri i është nënshtruar 504 ndryshimeve, të përgatitura me pjesëmarrjen e 64 zhvilluesve, nga të cilët 12 kanë marrë pjesë për herë të parë në zhvillim. :
- Përfunduar kalimi në parazgjedhje në protokollit të komunikimit Git, i cili përdoret kur klienti lidhet me serverin Git në distancë. Versioni i dytë i protokollit është i njohur për mundësinë e filtrimit të degëve dhe etiketave në anën e serverit duke i ofruar klientit një listë të shkurtuar të lidhjeve. Më parë, kur ekzekutohej ndonjë komandë e tërheqjes, klientit gjithmonë i dërgohej lista e plotë e lidhjeve në të gjithë depo, edhe kur klienti përditësonte vetëm një degë ose kontrollonte për azhurnimin e kopjes së tij të deposit. Një tjetër novacion i dukshëm është mundësia e shtimit të funksionaliteteve të reja në protokoll siç shfaqen në veglat e reja. Kodi i klientit mbetet i përputhshëm me protokollin e vjetër dhe mund të vazhdoi të punojë si me serverët e rinj ashtu edhe me ata të vjetër, duke u rikthyer automatikisht në versionin e parë nëse serveri nuk mbështet versionin e dytë.
- NĂ« komandĂ«n «git config» Ă«shtĂ« shtuar opsioni «âshow-scope» qĂ« lehtĂ«son identifikimin e vendit ku janĂ« tĂ« definuara cilĂ«simet e ndryshme. Git lejon pĂ«rcaktimin e cilĂ«simeve nĂ« vende tĂ« ndryshme: nĂ« repositorin (.git/info/config), nĂ« katalogun e pĂ«rdoruesit (~/.gitconfig), nĂ« skedarin e pĂ«rgjithshĂ«m tĂ« konfigurimit (/etc/gitconfig), si dhe pĂ«rmes opsioneve tĂ« linjĂ«s sĂ« komandĂ«s dhe variablave tĂ« ambientit. Kur ekzekutohet «git config» Ă«shtĂ« mjaft e vĂ«shtirĂ« tĂ« kuptohet se ku konkretisht Ă«shtĂ« pĂ«rcaktuar cilĂ«simi qĂ« kĂ«rkohet. PĂ«r tĂ« zgjidhur kĂ«tĂ« problem, ishte nĂ« dispozicion opsioni «âshow-origin», por ai tregon vetĂ«m rrugĂ«n pĂ«r nĂ« skedarin ku Ă«shtĂ« pĂ«rcaktuar cilĂ«simi, çka Ă«shtĂ« e dobishme kur dĂ«shirohet tĂ« redaktohet skedari, por nuk ndihmon nĂ«se kĂ«rkohet tĂ« ndryshohet vlera 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 lejohet pĂ«rdorimi i maskave nĂ« URL. Ădo konfigurim HTTP dhe tĂ« dhĂ«nat e identifikimit nĂ« Git mund tĂ« vendosen si pĂ«r tĂ« gjitha lidhjet (http.extraHeader, credential.helper), ashtu edhe pĂ«r lidhjet e lidhura me URL (credential.https://example.com.helper, credential.https://example.com.helper). Deri 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. NĂ« Git 2.26 kĂ«to dallime janĂ« hequr dhe, pĂ«r shembull, pĂ«r lidhjen e emrit tĂ« pĂ«rdoruesit me tĂ« gjitha nĂ«n-domenet tani mund tĂ« specifikohet:
[credential «https://*.example.com»]
username = ttaylorr
- Ka vazhduar zgjerimi i mbështetjes eksperimentale për klonimin e pjesshëm (partial clones), duke lejuar që të transferohen vetëm disa të dhëna dhe të punohet me një kopje të paplotë të repository. Në versionin e ri është shtuar një komandë e re «git sparse-checkout add», e cila lejon shtimin e drejtorive të veçanta për të aplikuar operacionin «checkout» vetëm në një pjesë të pemës së punës, në vend që të përmendet tërë ajo drejtoritë njëherësh përmes komandës «git sparse-checkout set» (mund të shtoni një drejtorinë në një kohë, pa nevojën e përsëritjes së listës së plotë çdo herë).
PĂ«r shembull, pĂ«r tĂ« klonuar njĂ« depo git/git pa transferimin e blobs, duke kufizuar verifikimin vetĂ«m nĂ« katalogun rrĂ«njĂ« tĂ« kopjes sĂ« punĂ«s dhe njĂ« etiketĂ« tĂ« ndarĂ« pĂ«r nxjerrjen e katalogĂ«ve "t" dhe "Dokumentacioni", 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 Dokumentacioni
âŠ.
$ git sparse-checkout list
Dokumentacioni
t - Performanca e komandĂ«s "git grep" Ă«shtĂ« rritur ndjeshĂ«m, e cila pĂ«rdoret pĂ«r kĂ«rkimin si nĂ« pĂ«rmbajtjen aktuale tĂ« depozitĂ«s, ashtu edhe nĂ« rishikimet historike. PĂ«r tĂ« pĂ«rshpejtuar kĂ«rkimin, lejohej skanimi i pĂ«rmbajtjes sĂ« kopjes sĂ« punĂ«s duke pĂ«rdorur disa thread-e ("git grep âthreads"), por kĂ«rkimi nĂ« rishikimet historike ishte njĂ«-thread. Tani ky kufizim Ă«shtĂ« hequr falĂ« realizimit tĂ« mundĂ«sive pĂ«r paralelizimin e operacioneve tĂ« leximit nga depoja e objekteve. PĂ«r shkak se numri i thread-eve vendoset automatikisht sa i pĂ«rket numrit tĂ« bĂ«rthamave CPU, nĂ« shumicĂ«n e rasteve tani nuk kĂ«rkohet tĂ« vendoset qartĂ« opsioni "âthreads".
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r autoshkarkimin e nĂ«nkomandave, rrugĂ«ve, lidhjeve dhe argumenteve tĂ« tjera tĂ« komandĂ«s «git worktree», qĂ« lejon tĂ« punoni me disa kopje tĂ« depozitĂ«s.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r ngjyrat e ndritshme, pĂ«r tĂ« cilat ka sekuenca escape ANSI. PĂ«r shembull, nĂ« cilĂ«simet e ngjyrave tĂ« ndriçimit «git config âcolor» ose «git diff âcolor-moved» pĂ«r ngjyrĂ«n e ndritshme blu mund tĂ« specifikoni «%C(brightblue)».
- ĂshtĂ« shtuar njĂ« version i ri i skriptit , qĂ« siguron integrimin me mekanizmin pĂ«r tĂ« pĂ«rshpejtuar ndjekjen e ndryshimeve tĂ« skedarĂ«ve dhe shfaqjen e skedarĂ«ve tĂ« rinj. Pas pĂ«rditĂ«simit git kĂ«rkon hook nĂ« depo.
- ĂshtĂ« shtuar optimizime pĂ«r pĂ«rshpejtimin e operacioneve tĂ« klonimit tĂ« pjesshĂ«m (partial clones), tĂ« lidhura me aplikimin e hartave tĂ« bitĂ«ve
(bitmap machinery) pĂ«r tĂ« shmangur kontrollin e plotĂ« tĂ« tĂ« gjithĂ« objekteve gjatĂ« filtrimit tĂ« daljeve. Kontrolli pĂ«r blobet (âfilter=blob:none dhe âfilter=blob:limit=n) gjatĂ« klonimit tĂ« pjesshĂ«m tani kryhet
ndjeshĂ«m mĂ« shpejt. GitHub shpalli se aplikohet patches me kĂ«to optimizime dhe mbĂ«shtetje eksperimentale pĂ«r klonimin e pjesshĂ«m. - Komanda «git rebase» Ă«shtĂ« transferuar nĂ« njĂ« backend tjetĂ«r, duke pĂ«rdorur mekanizmin âmergeâ si parazgjedhje (mĂ« parĂ« pĂ«rdorej pĂ«r «rebase -i») nĂ« vend tĂ« âpatch+applyâ. NĂ« disa detaje, backendet dallojnĂ«, pĂ«r shembull, pas vazhdimit tĂ« operacionit pas zgjidhjes sĂ« konfliktit (git rebase âcontinue) backend-i i ri ofron mundĂ«sinĂ« pĂ«r tĂ« redaktuar mesazhin e commits, ndĂ«rsa ai i vjetĂ«r thjesht pĂ«rdorte mesazhin e vjetĂ«r. PĂ«r tĂ« rikthyer sjelljen e vjetĂ«r, mund tĂ« pĂ«rdorĂ«sh opsionin «âapply» ose tĂ« caktosh variablĂ«n e konfigurimit ârebase.backendâ nĂ« vlerĂ«n âapplyâ.
- Shembulli i një trajtuesi të parametrave të autentifikimit të caktuar përmes .netrc, është sjellë në një formë të përdorshme nga kuti.
- ĂshtĂ« shtuar konfigurimi gpg.minTrustLevel pĂ«r tĂ« caktuar nivelin minimal tĂ« besueshmĂ«risĂ« pĂ«r elemente tĂ« ndryshme qĂ« kryejnĂ« verifikimin e nĂ«nshkrimit digjital.
- NĂ« «git rm» dhe «git stash» Ă«shtĂ« shtuar opsioni «âpathspec-from-file».
- ĂshtĂ« vazhduar pĂ«rmirĂ«simi i grupeve tĂ« testeve nĂ« kuadĂ«r tĂ« pĂ«rgatitjes pĂ«r kalimin nĂ« algoritmin e hash SHA-2 nĂ« vend tĂ« SHA-1.
Burimi: opennet.ru
