Të paraqitura lëshimi i sistemit të shpërndarë të menaxhimit të kodit burimor Git 2.54. Git ofron performancë të lartë dhe siguron mjete për zhvillimin jo linear, bazuar në degëzim dhe bashkimin e degëve. Për të garantuar integritetin e historisë dhe stabilitetin ndaj ndryshimeve të 'mëvonshme', përdoret hashing i implicit për tërë historinë e mëparshme në secilin commit, si dhe verifikimi me nënshkrime digjitale të zhvilluesve për etiketat dhe commit-et e veçanta. distribuohet nën licencën GPLv2+.
Në krahasim me edicionin e kaluar, versioni i ri pranon 770 ndryshime, të përgatitura me pjesëmarrjen e 137 zhvilluesve (66 prej të cilëve e kanë marrë pjesën e parë në zhvillimin e Git).
-
është realizuar komandagit historye cila ofron mundësi eksperimentale për riparimin e historisë së ndryshimeve, më të thjeshta dhe më të sigurta për t'u përdorur sesa rebazimi i commit-eve me komandën git rebase. Ofron dy operacione:
- git history reword për të riparuar mesazhin në commit-in e specifikuar pa ndryshuar pemën e punës dhe indeksin (përveç shënimit, e gjitha mbetet e paprekur). Për shembull, për të korrigjuar një gabim shtypi.
- git history split për ndarjen interaktive të commit-it të specifikuar në dy commit-e të ndryshme me lëvizjen e pjesëve të përzgjedhura nga commit-i origjinal në një commit shtesë.
Në edicionet e ardhshme pritet shtimi i komandave të tjera: git history fixup për të korrigjuar një commit, git history drop për të fshirë një commit, git history reorder për të ndryshuar rendin e ndjekjes së commit-eve dhe git history squash për të bashkuar commit-et.
-
Ă«shtĂ« realizuar njĂ« metodĂ« e re pĂ«r pĂ«rcaktimin e pĂ«rpunuesve (skritp-hook) nĂ« skedaret e konfigurimit. NĂ« vend tĂ« vendosjes sĂ« skripteve me pĂ«rpunues nĂ« katalogun .git/hooks nĂ« çdo repository, komandat pĂ«r thirrjen e pĂ«rpunuesve tani mund tĂ« pĂ«rcaktohen direkt nĂ« skedaret e konfigurimit. CilĂ«simet mund tĂ« lidhen me repository-n apo tĂ« specifikohen nĂ« skedaret e konfigurimit qĂ« veprojnĂ« pĂ«r tĂ« gjitha repository-t (/etc/gitconfig) ose pĂ«r repository-t e pĂ«rdoruesit (~/.gitconfig). ĂshtĂ« e mundur tĂ« lidhen disa pĂ«rpunues me njĂ« ngjarje. Skripte nga .git/hooks pĂ«rsĂ«ri vazhdojnĂ« tĂ« thirren, por nisin pas pĂ«rpunuesve nga skedaret e konfigurimit. PĂ«r tĂ« parĂ« listĂ«n e pĂ«rpunuesve, duhet tĂ« pĂ«rdoret komanda git hook list, dhe pĂ«r tĂ« çaktivizuar selektivisht thirrjen e pĂ«rpunuesve â konfigurimi 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ë komandëngit maintenancestrategjia e cila është e angazhuar si standard është strategjia geometric (git config set maintenance.strategy geometric), e cila lejon reduktimin e kohës së mirëmbajtjes për monorepositorët e mëdhenj. Në krahasim me strategjinë e përdorur më parë, e cila përdor logjikën si në komandën git gc, strategjia e re shmang ri-paketime të të gjithë objekteve dhe përjashton operacionet shumë kërkuese për burime, si bashkimi i të gjithë skedarëve pack (sa më shumë që është e mundur, bashkimi bëhet në pjesë dhe pa pastrimin e objekteve të fshira).
- Baza e të dhënave të objekteve (ODB) dhe API-të e lidhura me të janë transferuar në një arkitekturë të re, të bazuar në përdorimin e backend-ëve të palosshëm. Ristrukturimi i bërë e abstrakton formatin e ruajtjes së objekteve dhe në të ardhmen do të lejojë realizimin e mundësive të tilla si backend alternativë dhe formate objekteje, për shembull, për ruajtjen më efikase të skedareve binarë të mëdhenj apo për optimizimin e funksionimit të hosteve të mëdhenj git.
- Në komandëngit repo structuretani ofron informacion mbi strukturën e repository-it, duke siguruar jo vetëm madhësinë totale, por edhe shfaqjen e objekteve më të mëdha të secilit lloj, që lejon vlerësimin e madhësisë pa përdorimin e një utilitare të jashtme git-sizer.
$ git repo structure ⊠| * Largest objects | | | * Commits | | | * Maximum size [1] | 17.23 KiB | | * Maximum parents [2] | 10 | | * Trees | | | * Maximum size [3] | 58.85 KiB | | * Maximum entries [4] | 1.18 k | | * Blobs | | | * Maximum size [5] | 1019.51 KiB | | * Tags | | | * Maximum size [6] | 7.13 KiB |
- NĂ« komandĂ«ngit replayi cili aplikohet nĂ« vend tĂ« git rebase pĂ«r tĂ« rikrijuar historinĂ« nĂ« server pa pemĂ«n e punĂ«s, pĂ«rfshin azhurnimin atomik tĂ« referencave (nĂ« vend tĂ« shfaqjes sĂ« listĂ«s sĂ« komandave update-ref pĂ«r ekzekutim manual), Ă«shtĂ« realizuar opsioni ârevert pĂ«r tĂ« anuluar ndryshimet nga njĂ« seri commit-esh, Ă«shtĂ« siguruar ndarjen e commit-eve tĂ« zbrazĂ«ta qĂ« rezultojnĂ« dhe Ă«shtĂ« krijuar mundĂ«sia pĂ«r rikrijimin e historisĂ« deri nĂ« commit-in rrĂ«njĂ«sor.
- NĂ«git rev-listdhe komanda tĂ« ngjashme Ă«shtĂ« shtuar opsioni âmaximal-only pĂ«r tĂ« shfaqur vetĂ«m commit-et, tĂ« cilat nuk janĂ« tĂ« arritshme nga commit-e tĂ« tjerĂ«.
- NĂ« komandĂ«ngit repo infoĂ«shtĂ« shtuar opsioni âkeys pĂ«r tĂ« shfaqur njĂ« listĂ« tĂ« tĂ« gjithĂ« çelĂ«save tĂ« njohur.
- NĂ« komandĂ«ngit add -p» gjatĂ« navigimit midis blloqeve tĂ« kodit me çelĂ«sat «J» dhe «K» sigurohet shĂ«nimi i blloqeve tĂ« miratuara dhe atyre tĂ« anashkalura. Shtuar opsioni âno-auto-advance pĂ«r tĂ« çaktivizuar kalimin automatik nĂ« skedarin tjetĂ«r, pĂ«r tĂ« pasur mundĂ«sinĂ« tĂ« kthehesh nĂ« skedarĂ«t e mĂ«parshĂ«m para komitit.
- Optimizuar ndërfaqen web të «gitweb» për punë me pajisje mobile.
- NĂ« komandĂ«ngit apply âdirectory» para pĂ«rdorimit, siguruar normalizimi i rrugĂ«ve tĂ« skedarĂ«ve si ./un/../normalized/path.
- Dokumentuar mundësinë e shtimit të nënkomandave të personalizuara përmes vendosjes së skedarëve git-<cmd> në katalogun me skedarët e ekzekutueshëm.
- Në komandëngit send-email» e shtuar mbështetje për certifikatat e klientit.
- Për komandën «git status» realizuar konfigurimi status.compareBranches, përmes të cilit mund të përcaktohen degët, me të cilat do të bëhet krahasimi i degës aktuale:
[status] compareBranches = @{upstream} @{push}
- NĂ«git rebase» e shtuar opsioni âtrailer pĂ«r tĂ« thjeshtuar shtimin e metadata nĂ« tĂ« gjitha komitetet:
git rebase âtrailer "Reviewed-by: Test <test@example.com>"`
- Në komandëngit fast-import» e shtuar mundësia e zëvendësimit të nënshkrimeve për komitetet që janë bërë të pavlefshme pas importit.
- Shtuar mbështetje për paketimin (compaction) e indekseve shumëpaketë MIDX, ku ndërrohen shtresat e vogla të indekseve MIDX me informacion mbi disponueshmërinë e objekteve dhe skedarët bitmap të lidhur, gjë që lejon të reduktohet numri i shtresave të akumuluara në depo të vjetra.
- Në komandën git backfill realizuar mundësia për të treguar revizionet (intervale të komiteteve) dhe maskat e rrugëve (pathspec) për të kufizuar pjesët e historisë së ndryshimeve që merren:
git backfill main~100..main git backfill â â*.câ
- TĂ« dhĂ«na alternative pĂ«r thirrjen e komandĂ«s git config list â git config -l dhe git config âlist.
- Lejohet 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, pĂ«r tĂ« cilat ka skaduar afati i çelĂ«sit GPG, por qĂ« ishin tĂ« vlefshme nĂ« momentin e nĂ«nshkrimit tĂ« komitetit. NĂ«nshkrime tĂ« tilla tani shfaqen si tĂ« sakta me njĂ« shĂ«nim pĂ«r skadimin e çelĂ«sit (mĂ« parĂ« ato ishin theksuar me ngjyrĂ« tĂ« kuqe, duke krijuar pĂ«rshtypjen e pavlefshmĂ«risĂ«).
- Kur aksesoni depozitĂ« pĂ«rmes HTTP sigurohet trajtimi i gabimit me kodin 429 (Too Many Requests). KĂ«rkesat qĂ« pĂ«rfundojnĂ« me kĂ«tĂ« gabim tani trajtohen jo si njĂ« problem fatal, por si njĂ« gabim tĂ« pĂ«rkohshĂ«m, pĂ«r tĂ« cilin pas njĂ« kohe duhet pĂ«rsĂ«ritur operacionin. Vonesa para pĂ«rsĂ«ritjes caktohet pĂ«rmes opsionit http.retryAfter, numri i pĂ«rsĂ«ritjeve â http.maxRetries, koha e pritjes â http.maxRetryTime.
Burimi: linux.org.ru
