Pas tre muajsh zhvillimi, është lëshuar, sistemi i shpërndarë i menaxhimit të teksteve burimore Git 2.52. Git përfshin performancë të lartë dhe ofron mjete për zhvillim jo lineare, bazuar në ndarje dhe bashkimin e degëve. Për të siguruar integritetin e historisë dhe qëndrueshmërinë ndaj ndryshimeve "me retroaktivitet", përdoren hashing i implicit i gjithë historisë së mëparshme në çdo komitet, si dhe autenticiteti me nënshkrime digjitale të zhvilluesve për etiketat dhe komitetet e veçanta. Kodi i Git shpërndahet nën licencën GPLv2+.
Në krahasim me versionin e kaluar, versioni i ri ka pranuar 637 ndryshime, që janë përgatitur me pjesëmarrjen e 94 zhvilluesve (33 prej të cilëve morën pjesë për herë të parë në zhvillimin e Git). Novitetet kryesore (1, 2, 3):
- Shtuar komanda "git last-modified" për të treguar listën e skedarëve në një revizion të caktuar dhe komitetet që kanë sjellë ndryshime të fundit në secilin nga këta skedarë. $ git last-modified HEAD b56f6dcd7b4c90192018e848d0810f091d092913 test.h 29330ae4b820147c98e723399e9438c8bee60a8a test1.c 573ad8917beb99dc643b6e7f5c117a294384a575 test2.c
- Shtuar komanda "git repo" pĂ«r tĂ« kryer veprime tĂ« lidhura me nxjerrjen e informacionit nga repozitorĂ«t. Propozohen dy nĂ«nkomanda - "git repo info" dhe "git repo structure", qĂ« nxjerrin informacion rreth konfigurations sĂ« repozitorit dhe tĂ« dhĂ«na rreth strukturĂ«s sĂ« repozitorit (pĂ«r shembull, mund tĂ« dihet numri i referencave dhe objekteve nĂ« repozitor). $ git repo info object.format references.format object.format=sha1 references.format=reftable $ git repo structure | Struktura e repozitorit | Vlera | | âââââââ | ââ | | * Referencat | | | * Numri | 1983 | | * DegĂ«t | 4 | | * Etiketat | 1125 | | * Rrethet | 854 | | * TĂ« Tjera | 0 | | | | | * Objete tĂ« arritshme | | | * Numri | 518955 | | * Komitetet | 77469 | | * PemĂ«t | 188865 | | * BlobĂ«t | 251631 | | * Etiketat | 990 |
- Në komandën "git refs" janë shtuar tre nënkomanda që unifikojnë operacionet e nivelit të ulët të lidhjeve që janë të shpërndara dhe të mbivendosura (git for-each-ref, git show-ref, git update-ref dhe git pack-refs):
- "git refs optimize" - optimizimi i backend-it për ruajtjen e lidhjeve (sikurse me "git pack-refs").
- "git refs list" - nxjerr lista e të gjitha lidhjeve (sikurse me "git for-each-ref" ose "git show-ref").
- "git refs exists" - kontrollon ekzistencën e një lidhjeje (analog "git show-ref --exists").
- Formati pĂ«r eksportimin ose importimin e historisĂ« sĂ« komiteteve Ă«shtĂ« zgjeruar me mundĂ«sinĂ« e punĂ«s me nĂ«nshkrime kriptografike, duke pĂ«rdorur si identifikues objektesh nĂ« bazĂ« tĂ« algoritmit SHA-1, ashtu dhe nĂ« bazĂ« tĂ« SHA-256. NĂ« komandĂ«n «git fast-import» Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r pĂ«rpunimin e etiketave tĂ« nĂ«nshkruara, nĂ« pĂ«rputhje me komitetet e nĂ«nshkruara. JanĂ« shtuar opsionet «âsigned-commits=» dhe «âsigned-tags=» pĂ«r menaxhimin e pĂ«rpunimit tĂ« komiteteve dhe etiketave tĂ« nĂ«nshkruara nĂ« fazĂ«n e importimit (modi mund tĂ« marrĂ« vlera verbatim, warn-verbatim, warn-stri, strip ose abort).
- Në komandën «git maintenance» është shtuar mbështetje për strategjinë e re «geometric» («git config set maintenance.strategy geometric»), e cila lejon të reduktojë kohën e mbështetjes për depozitë të mëdha monorepozitoriumesh. Krahasuar me strategjinë e mëparshme, e cila përdorte logjikën e komandës «git gc», strategjia e re shmang repackimin e të gjitha objekteve dhe përjashton operacionet që kërkojnë shumë burime, siç është bashkimi i të gjitha skedarëve stack (kur është e mundur, bashkimi bëhet për pjesë dhe pa pastrimin e objekteve të fshiara).
- Komanda «git sparse-checkout clean» është shtuar për të thjeshtuar rikuperimin e gjendjes së katalogut të punës, duke eliminuar skedarët që nuk përputhen me definimin e ri të sparse-checkout, të cilat nuk duhet të jenë të pranishme në kopjen lokale në përputhje me parametrat aktualë të sparse-checkout.
- Për të eliminuar komplikimet nga kodi dhe për të thjeshtuar mirëmbajtjen, është bërë një ristrukturim për të reduktuar përdorimin e ndryshores globale the_repository.
- Përdorimi i filtrave Bloom është zgjeruar, një strukturë probabilistike për verifikimin e anëtarësisë në një grup, e cila lejon definimin e gabuar të një elementi të munguar, por përjashton humbjen e një elementi ekzistues. Filtrat Bloom tani përdoren për të shpejtuar kërkimin në historinë e ndryshimeve duke specifikuar maska në rrugët e skedarëve, për shembull, «foo/bar/*/baz».
- Performanca e komandĂ«s «git describe» Ă«shtĂ« rritur me 30%, falĂ« pĂ«rdorimit tĂ« njĂ« radhĂ« prioritare. NĂ« «git remote rename» janĂ« pĂ«rshpejtuar operacionet e rinomimit tĂ« lidhjeve. NĂ« «git ls-files» Ă«shtĂ« zgjeruar pĂ«rdorimi i indekseve. ĂshtĂ« shpejtuar ndjeshĂ«m puna e komandĂ«s «git log -L», duke pĂ«rjashtuar krahasimet e panevojshme tri-niveleshe gjatĂ« pĂ«rpunimit tĂ« bashkimeve tĂ« komiteteve. JanĂ« bĂ«rĂ« optimizime nĂ« bibliotekĂ«n xdiff.
- ĂshtĂ« e mundur t'i pĂ«rdorni realizimet nĂ« gjuhĂ«n Rust pĂ«r disa funksione tĂ« brendshme, si kodimi dhe dekodimi i vlerave tĂ« numrave me gjatĂ«si variable. Me parazgjedhje, kodi nĂ« Rust nuk pĂ«rdoret dhe aktivizimi i tij kĂ«rkon qĂ« tĂ« specifikohet flagu i ndĂ«rtimit WITH_RUST. NĂ« tĂ« ardhmen, pritet tĂ« ri-dizajnohen shumĂ« komponentĂ« tĂ« brendshĂ«m tĂ« Git nĂ« Rust dhe tĂ« shtohet Rust si njĂ« nga varĂ«sitĂ« e nevojshme nĂ« ndĂ«rtimin e Git 3.0.
- Lista e ndryshimeve që shkelin përputhshmërinë është përditësuar dhe do të zbatohet në degën Git 3.0. Në Git 3.0 është vendosur të ndryshohet konfigurimi init.defaultBranch me parazgjedhje në vlerën "main", dmth, në repozitorët e krijuar me komandën "git init", dega me parazgjedhje do të quhet "main" dhe jo "master". Gjithashtu, është shënuar kalimi në identifikues objektesh të bazuar në algoritmin e hash-it SHA-256 gjatë inicializimit të repozitorëve të rinj. Për të lehtësuar portabilitetin midis repozitorëve me identifikues objektesh bazuar në hash SHA-1 dhe SHA-256, është ofruar mundësia që në një repozitor që përdor një algoritëm hashing, të realizohen operacionet push dhe pull nga një repozitor që përdor një algoritëm tjetër hashing.
Burimi: opennet.ru
