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).
-
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
