Lëshimi i sistemit të shpërndarë të menaxhimit të kodit burimor Git 2.26

I verfĂŒshĂ«m lĂ«shimi i sistemit tĂ« shpĂ«rndarĂ« tĂ« menaxhimit tĂ« kodit burimor Git 2.26.0. 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. Ndryshimet kryesore risitë:

  • PĂ«rfunduar kalimi nĂ« parazgjedhje nĂ« versionin e dytĂ« 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 tĂ« dhĂ«nave 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 fsmonitor-watchman, qĂ« siguron integrimin me mekanizmin Facebook Watchman 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 zĂ«vendĂ«suar 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

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster