Git 2.54

Git 2.54

Presented lëshimi i sistemit të shpërndarë të menaxhimit të kodit burimor Git 2.54. Git dallon për performancën e lartë dhe ofron mjete për zhvillimin jo linear, të bazuara në degëzimin dhe fuqizimin e degëve. Për të siguruar integritetin e historisë dhe qëndrueshmërinë ndaj ndryshimeve "në retro", përdoret hashingu implicit i të gjithë historisë së mëparshme në çdo përkushtim, si dhe vërtetimi me nënshkrime dixhitale të zhvilluesve për etiketat dhe përkushtimet individuale. Kodi Git shpërndahet në përputhje me licencën GPLv2+.

Në krahasim me lancimin e kaluar, versioni i ri përmban 770 ndryshime, të përgatitura me pjesëmarrjen e 137 zhvilluesve (66 kanë marrë pjesë për herë të parë në zhvillimin e Git).

Main innovations:

  • Kjo realizon komandĂ«n “git history”, qĂ« ofron mundĂ«si eksperimentale pĂ«r ripĂ«rkufizimin e historisĂ« sĂ« ndryshimeve, mĂ« tĂ« lehta dhe mĂ« tĂ« sigurta nĂ« pĂ«rdorim, se sa ribazimi i pĂ«rkushtimeve me komandĂ«n git rebase. Ofrohen dy operacione:

    • git history reword pĂ«r tĂ« ripĂ«rkufizuar mesazhin nĂ« pĂ«rkushtimin e caktuar pa ndryshuar pemĂ«n e punĂ«s dhe indekset (pĂ«rveç shĂ«nimeve, e gjithĂ« gjĂ«ja mbetet e paprekur). PĂ«r shembull, pĂ«r tĂ« korrigjuar njĂ« gabim shkrimi.
    • git history split pĂ«r ndarjen interaktive tĂ« pĂ«rkushtimit tĂ« caktuar nĂ« dy pĂ«rkushtime tĂ« ndryshme duke zhvendosur pjesĂ«t e zgjedhura nga pĂ«rkushtimi origjinal nĂ« njĂ« pĂ«rkushtim tĂ« ri.

    Në lëshimet e ardhshme, pritet të shtohen komandat e tjera: git history fixup për të korrigjuar një përkushtim, git history drop për të fshirë një përkushtim, git history reorder për të ndryshuar renditjen e përkushtimeve dhe git history squash për bashkimin e përkushtimeve.

  • Implementohet njĂ« metodĂ« e re pĂ«r tĂ« pĂ«rcaktuar trajtuesit (hook) nĂ« skedarĂ«t e konfigurimeve. NĂ« vend qĂ« tĂ« vendosen skriptet me trajtues nĂ« katalogun .git/hooks nĂ« çdo depo, komandat pĂ«r thirrjen e trajtuesve tani mund tĂ« pĂ«rcaktohen drejtpĂ«rdrejt nĂ« skedarĂ«t e konfigurimeve. CilĂ«simet mund tĂ« lidhen me depon ose tĂ« specifikohen nĂ« skedarĂ«t e konfigurimit qĂ« veprojnĂ« pĂ«r tĂ« gjitha depo ( /etc/gitconfig) ose depo tĂ« pĂ«rdoruesit (~/ .gitconfig). ËshtĂ« e mundur lidhja e disa trajtuesve me njĂ« ngjarje. Skriptet nga .git/hooks vazhdojnĂ« tĂ« thirren, por ekzekutohen pas trajtuesve nga skedarĂ«t e konfigurimeve. PĂ«r tĂ« parĂ« listĂ«n e trajtuesve, duhet pĂ«rdorur komanda git hook list, dhe pĂ«r tĂ« çaktivizuar pĂ«rzgjedhjen e thirrjes sĂ« trajtuesve – cilĂ«simi hook..enabled = false:

[hook "linter"] event = pre-commit command = ~\/bin\/linter —cpp20 [hook "no-leaks"] event = pre-commit command = ~\/bin\/leak-detector $ git hook list pre-commit global linter ~\/bin\/linter —cpp20 local no-leaks ~\/bin\/leak-detector

  • NĂ« ekipin "git maintenance" pĂ«rdoret strategjia standarde geometric (git config set maintenance.strategy geometric), e cila lehtĂ«son kohĂ«n e mirĂ«mbajtjes pĂ«r monorepozita tĂ« mĂ«dha. NĂ« krahasim me strategjinĂ« e mĂ«parshme qĂ« pĂ«rdorte logjikĂ«n si nĂ« komandĂ«n git gc, strategjia e re shmang ri-paketimin e tĂ« gjitha objekteve dhe pĂ«rjashton operacionet e tepĂ«rta qĂ« kĂ«rkojnĂ« shumĂ« burime, si pĂ«r shembull bashkimi i tĂ« gjitha skedave pack (kur Ă«shtĂ« e mundur, bashkimi bĂ«het nĂ« pjesĂ« pa pastrimin e objekteve tĂ« fshira).
  • Baza e tĂ« dhĂ«nave tĂ« objekteve (ODB) dhe API-tĂ« pĂ«rkatĂ«se janĂ« transferuar nĂ« njĂ« arkitekturĂ« tĂ« re qĂ« bazohet nĂ« pĂ«rdorimin e backend-eve tĂ« ngjitur. Ristrukturimi i bĂ«rĂ« abstrahon formatin e ruajtjes sĂ« objekteve dhe nĂ« tĂ« ardhmen do tĂ« mundĂ«sojĂ« realizimin e mundĂ«sive tĂ« tilla si backend-e dhe formate alternative tĂ« objekteve, pĂ«r shembull, pĂ«r ruajtjen mĂ« efikase tĂ« skedarĂ«ve tĂ« mĂ«dhenj binarĂ« ose pĂ«r optimizimin e operacioneve tĂ« git-hosting tĂ« mĂ«dha.
  • NĂ« ekipin "strukturĂ«n e git repo», e cila jep informacion mbi strukturĂ«n e repos, siguron shfaqjen jo vetĂ«m tĂ« madhĂ«sisĂ« totale, por edhe tĂ« objekteve mĂ« tĂ« mĂ«dha tĂ« çdo tipi, çka lejon qĂ« tĂ« pĂ«rvijohet madhĂ«sia pa pĂ«rdorimin e mjeteve tĂ« jashtme git-sizer.

$ git repo structure 
 | * Objekti më të mëdha | | | * Komitetet | | | * Madhësia maksimale [1] | 17.23 KiB | | * Prindërit maksimale [2] | 10 | | * Pemët | | | * Madhësia maksimale [3] | 58.85 KiB | | * Numri maksimal i hyrjeve [4] | 1.18 k | | * Blobs | | | * Madhësia maksimale [5] | 1019.51 KiB | | * Etiketat | | | * Madhësia maksimale [6] | 7.13 KiB |

  • NĂ« ekipin "git replay», e cila pĂ«rdoret nĂ« vend tĂ« git rebase pĂ«r tĂ« rikrijuar historinĂ« nĂ« server pa njĂ« pemĂ« pune, pĂ«rfshin automatikisht pĂ«rditĂ«simin atomik tĂ« referencave (nĂ« vend tĂ« shfaqjes sĂ« listĂ«s sĂ« komandave update-ref pĂ«r ekzekutimin manual), Ă«shtĂ« implementuar opsioni —revert pĂ«r tĂ« anuluar ndryshimet nga njĂ« seri komitetesh, Ă«shtĂ« siguruar hedhja e komiteteve tĂ« pastra tĂ« rezultatit dhe Ă«shtĂ« mundĂ«suar rikrijimi i historisĂ« deri nĂ« komitin rrĂ«njor.
  • NĂ« "git rev-list» dhe komandat e ngjashme Ă«shtĂ« shtuar opsioni —maximal-only pĂ«r tĂ« treguar vetĂ«m komitetet qĂ« nuk arrihen nga komitete tĂ« tjera.
  • NĂ« komandĂ«n "git repo info» Ă«shtĂ« shtuar opsioni —keys pĂ«r tĂ« shfaqur njĂ« listĂ« tĂ« tĂ« gjitha çelĂ«save tĂ« njohur.
  • NĂ« ekipin "git add -p» GjatĂ« navigimit midis blloqeve tĂ« kodit me çelĂ«sat «J» dhe «K», Ă«shtĂ« siguruar shĂ«nimi i blloqeve qĂ« janĂ« miratuar dhe atyre qĂ« janĂ« anashkaluar. ËshtĂ« shtuar opsioni —no-auto-advance pĂ«r tĂ« çaktivizuar kalimin automatik nĂ« skedarin tjetĂ«r, pĂ«r t'u mundĂ«suar kthimin nĂ« skedarĂ«t e kaluara para komitit.
  • ËshtĂ« optimizuar ndĂ«rfaqja web «gitweb» pĂ«r t'u pĂ«rdorur nga pajisjet mobile.
  • NĂ« ekipin "git apply –directory» para pĂ«rdorimit Ă«shtĂ« siguruar normalizimi i rrugĂ«ve tĂ« skedareve, siç janĂ« .\/un\/..\/normalized\/path.
  • ËshtĂ« dokumentuar mundĂ«sia e shtimit tĂ« nĂ«nkomandave tĂ« veta pĂ«rmes vendosjes sĂ« skedareve git- nĂ« katalogun me skedarĂ«t ekzekutues.
  • NĂ« komandĂ«n "git send-email» Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r certifikatat e klientĂ«ve.
  • PĂ«r komandĂ«n «git status» Ă«shtĂ« realizuar konfigurimi status.compareBranches, pĂ«rmes tĂ« cilit mund tĂ« specifikoni degĂ«t me tĂ« cilat do tĂ« bĂ«het krahasimi i degĂ«s aktuale:

[status] compareBranches = @{upstream} @{push}

  • NĂ« "git rebase» Ă«shtĂ« shtuar opsioni —trailer pĂ«r tĂ« thjeshtuar shtimin e metadatat nĂ« tĂ« gjitha komitetet:

git rebase —trailer "Reviewed-by: Test "`

  • NĂ« komandĂ«n "git fast-import» Ă«shtĂ« shtuar mundĂ«sia e zĂ«vendĂ«simit tĂ« nĂ«nshkrimeve pĂ«r komitetet qĂ« janĂ« bĂ«rĂ« tĂ« pavlefshme pas importit.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r paketimin (compaction) e indekseve shumĂ«-paket MIDX (multi-pack index), ku ndodhin bashkime midis niveleve tĂ« vogla tĂ« indekseve MIDX me informacion mbi disponueshmĂ«rinĂ« e objekteve dhe skedarĂ«t bitmap tĂ« lidhur, duke lejuar zvogĂ«limin e numrit tĂ« niveleve tĂ« grumbulluara nĂ« repo tĂ« vjetra.
  • NĂ« komandĂ«n git backfill Ă«shtĂ« realizuar mundĂ«sia e specifikimit tĂ« revizionĂ«ve (intervaleve tĂ« komiteteve) dhe maskave tĂ« rrugĂ«ve (pathspec) pĂ«r tĂ« kufizuar pjesĂ«t e historisĂ« sĂ« ngjarjeve qĂ« do tĂ« ngarkohen:

git backfill main~100..main git backfill — '*.c'

  • JanĂ« shtuar forma alternative pĂ«r thirrjen e komandĂ«s git config list – git config -l dhe git config —list.
  • ËshtĂ« lejuar pĂ«rdorimi i simboleve jo-ASCII nĂ« emrat e pseudonimeve tĂ« komandave, tĂ« caktuara nĂ« skedarin e konfigurimit:

[alias "merr"] command = fetch

  • ËshtĂ« ndryshuar shfaqja e nĂ«nshkrimeve, tĂ« cilat kanĂ« skaduar çelĂ«sat GPG, por ishin tĂ« vlefshme nĂ« momentin e nĂ«nshkrimit tĂ« komitetit. TĂ« tilla nĂ«nshkrime tani shfaqen si tĂ« sakta me njĂ« shĂ«nim pĂ«r skadimin e çelĂ«sit (mĂ« parĂ« ato ishin tĂ« theksuara me ngjyrĂ« tĂ« kuqe, çka jepte pĂ«rshtypjen e pavlefshmĂ«risĂ«).
  • Kur gjatĂ« kĂ«rkimit nĂ« depo me anĂ« tĂ« HTTP, Ă«shtĂ« siguruar trajtimi i gabimit me kodin 429 (Too Many Requests). KĂ«rkesat qĂ« pĂ«rfundojnĂ« me kĂ«tĂ« gabim tani shqyrtohen jo si njĂ« problem fatal, por si njĂ« gabim tĂ« pĂ«rkohshĂ«m, pĂ«r tĂ« cilin duhet tĂ« pĂ«rsĂ«ritet operacioni pas pak kohe. Vonesa para pĂ«rsĂ«ritjes pĂ«rcaktohet pĂ«rmes opsionit http.retryAfter, numri i pĂ«rsĂ«ritjeve – http.maxRetries, koha e pritjes – http.maxRetryTime.

Burimi: linux.org.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster