Lëshimi i sistemit të menaxhimit të teksteve burimore Git 2.51

Pas dy muajve zhvillimi, u prezantua versioni i sistemit të menaxhimit të teksteve burimore të shpërndara Git 2.51. Git përfshin një performancë të lartë dhe ofron mjete për zhvillimin jo-lineare, të bazuara në degëzimin dhe bashkimin e degëve. Për të siguruar integritetin e historisë dhe qëndrushmërinë ndaj ndryshimeve 'retroaktive', përdoret hashingu implicit i gjithë historisë përkatëse në çdo commit, si dhe autentikimi me nënshkrime digjitale të zhvilluesve për etiketa dhe commit-e të veçanta. Kodi i Git shpërndahet nën licencën GPLv2+.

Krahasuar me versionin e kaluar, versioni i ri përmban 506 ndryshime, të përgatitura me pjesëmarrjen e 91 zhvilluesve (21 prej tyre kanë marrë pjesë për herë të parë në zhvillimin e Git). Risitë kryesore (1, 2, 3):

  • Performanca e komandave 'git push' dhe 'git fetch' Ă«shtĂ« rritur nĂ« depo me numĂ«r tĂ« madh tĂ« lidhjeve. ShpejtĂ«sia Ă«shtĂ« pĂ«rmirĂ«suar falĂ« azhornimit tĂ« lidhjeve nĂ« mĂ«nyrĂ« grupore, ku nĂ« njĂ« transaksion pĂ«rpunohen disa lidhje njĂ«herĂ«sh, nĂ« vend tĂ« krijimit tĂ« njĂ« transaksioni tĂ« veçantĂ« pĂ«r azhornimin e çdo lidhjeje. Optimizimi ka rritur ndjeshĂ«m shpejtĂ«sinĂ« e backend-it 'reftable', i cili tashmĂ« e tejkalon performancĂ«n e backend-it 'files'. PĂ«r shembull, nĂ« njĂ« depo testuese me 10,000 lidhje, performanca e 'git fetch' kur pĂ«rdoret backend-i 'reftable' Ă«shtĂ« rritur 22 herĂ«, ndĂ«rsa pĂ«r backend-in 'files' ka pasur njĂ« rritje prej 1.25 herĂ«. NdĂ«rsa pĂ«r 'git push', rritja ka qenĂ« 18 dhe 1.21 herĂ«, respektivisht.
  • NjĂ« metodĂ« e re e paketimit nĂ« skedarĂ«t e paketave pĂ«r pjesĂ«t e depozitĂ«s, tĂ« cilat nuk lidhen me ndjekjen e objekteve tĂ« paarritshme, pĂ«r tĂ« cilat nuk ka lidhje nĂ« depo (nuk referohen nga degĂ« ose etiketa). Informacioni mbi objektet e paarritshme ruhet nĂ« skedarĂ« tĂ« veçantĂ« pakete ('cruft packs'), çka ka sjellĂ« nevojĂ«n pĂ«r reflektimin e tyre nĂ« indekse multi-pakete MIDX (multi-pack index) pĂ«r tĂ« pĂ«rfshirĂ« objektet, tĂ« cilat fillimisht ishin tĂ« paarritshme dhe ruheshin vetĂ«m nĂ« cruisht-paketĂ«, por mĂ« pas janĂ« bĂ«rĂ« tĂ« arritshme pas njĂ« commit-i qĂ« i referohet atyre.

    Në versionin e ri, gjatë ripakimit të skedarëve pack, është siguruar ruajtja e kopjeve shtesë të objekteve të arritshme, të ruajtura vetëm në skedarët cruft. Ky ndryshim garanton që në grupin e skedarëve pack, të përdorur për ruajtjen e objekteve të arritshme, nuk përfshihen objekte që referohen në objekte të tjera, të ruajtura jashtë këtij grupi. Për të përjashtuar përmbajtjen e paqëllimshme cruft nga indeksat multi-pack (MIDX), është propozuar konfigurimi 'repack.MIDXMustContainCruft', i cili lejon të reduktohet ndjeshëm madhësia e tillë e indekseve. Aktivizimi i konfigurimit në depo GitHub ka lejuar të reduktohet madhësia e indekseve MIDX me 38%, të shpejtohet shkrimi në indekset MIDX me 35% dhe të rritet performanca e leximit me 5%.

  • NĂ« komandĂ«n 'git pack-objects' Ă«shtĂ« shtuar opsioni '—path-walk', i cili pĂ«rfshin njĂ« metodĂ« tĂ« re pĂ«r mbledhjen e informacionit mbi objektet gjatĂ« ripakimit tĂ« skedarĂ«ve pack. NĂ« vend tĂ« kalimit tĂ« objekteve sipas rendit tĂ« revizionit, kur pĂ«rdoret reĆŸimi '—path-walk', objektet kalohen pĂ«rmes rrugeve tĂ« skedarĂ«ve, e cila lejon paketimin e tĂ« gjitha objekteve me tĂ« njĂ«jtĂ«n rrugĂ« skedari njĂ«herĂ«sh. Ky qasje pĂ«rjashton heuristikĂ«n qĂ« pĂ«rdor hashing pĂ«r tĂ« pĂ«rcaktuar lidhjen e objektit me rrugĂ«n e tij skedari, si dhe eliminon nevojĂ«n pĂ«r renditjen e objekteve para paketimit. Kur pĂ«rdoret regjimi '—path-walk', madhĂ«sia e skedarĂ«ve pack tĂ« gjeneruar Ă«shtĂ« dukshĂ«m mĂ« e vogĂ«l se ajo e grupeve tĂ« objekteve duke pĂ«rdorur hash.
  • ËshtĂ« pĂ«rcaktuar formati pĂ«r shkĂ«mbimin e gjendjeve tĂ« ruajtura tĂ« pemĂ«s sĂ« punĂ«s dhe indekseve nĂ« depo, tĂ« krijuara me komandĂ«n 'git stash'. Formati i ri lejon kodimin e ndryshimeve tĂ« ruajtura (stash-tĂ«) nĂ« formĂ«n e njĂ« sekuence komitĂ«sh. PĂ«r importin dhe eksportin janĂ« propozuar nĂ«nkomandat 'git stash import' dhe 'git stash export', tĂ« cilat mund tĂ« pĂ«rdoren pĂ«r tĂ« transferuar gjendjet e ruajtura nga njĂ« sistem nĂ« tjetrin dhe pĂ«r tĂ« kryer operacione push ose pull me kĂ«to gjendje si me degĂ« ose etiketa tĂ« zakonshme. git stash export —to-ref refs/stashes/my-stash git push origin refs/stashes/my-stash 
 git fetch origin '+refs/stashes/*:refs/stashes/*' git stash import refs/stashes/my-stash
  • NĂ« komandĂ«n «git cat-file», e cila jep pĂ«rmbajtjen e objekteve tĂ« caktuara, pĂ«rmes opsioneve «—batch» dhe «—batch-check» Ă«shtĂ« realizuar mundĂ«sia pĂ«r tĂ« shfaqur informacion nĂ« lidhje me objektet qĂ« mungojnĂ« (p.sh., pĂ«r shkak tĂ« dĂ«mtimit tĂ« repositorit) dhe submodulet. MĂ« parĂ«, kur specifikohej pĂ«r submodulin, komanda «git cat-file —batch-check» shfaqi «missing», ndĂ«rsa tani do tĂ« tregojĂ« identifikuesin e objektit.
  • NĂ« komandĂ«n «git log» janĂ« pĂ«rdorur optimizime bazuar nĂ« filtrat e Bloom pĂ«r tĂ« shpejtuar kĂ«rkimin nĂ« historinĂ« e ndryshimeve kur specifikohen filtra me disa rrugĂ« skedari, pĂ«r shembull, «git log — path/to/a path/to/b».
  • Komandat «git switch» dhe «git restore» janĂ« stabilizuar, tĂ« cilat qĂ« nga viti 2019 janĂ« shqyrtuar si eksperimentale. Komandat paraqiten si ekuivalenti modern i «git checkout», duke ndarĂ« mundĂ«si tĂ« natyrĂ«s sĂ« ndryshme tĂ« kĂ«saj komande, si manipulimi i degĂ«ve (kthimi dhe krijimi) dhe rikthimi i skedarĂ«ve nĂ« katalogun e punĂ«s.
  • Komanda «git whatchanged», ekuivalente e «git log —raw», Ă«shtĂ« shpallur e vjetruar dhe e planifikuar pĂ«r t'u hequr nĂ« degĂ«n Git 3.0.
  • NĂ« komandĂ«n «git for-each-ref» Ă«shtĂ« shtuar opsioni «—start-after», i cili mund tĂ« pĂ«rdoret sĂ« bashku me opsionin «—count» pĂ«r tĂ« organizuar outputin nĂ« faqe.
  • NĂ« komandat «git merge» dhe «git pull» Ă«shtĂ« shtuar opsioni «—compact-summary» pĂ«r tĂ« pĂ«rdorur njĂ« format tĂ« pĂ«rmbledhur tĂ« informacionit mbi ndryshimet nĂ« vend tĂ« formatit diffstat.
  • NĂ« bazĂ«n e kodit Git Ă«shtĂ« lejuar pĂ«rdorimi i fjalĂ«s kyçe «bool», e cila ka dalĂ« nĂ« standardin C99. Po ashtu, janĂ« dokumentuar disa mundĂ«si tĂ« C99, tĂ« pĂ«rdorura eksperimentalisht nĂ« Git (p.sh., nĂ« mes tĂ« vitit 2026 planifikohet tĂ« lejohet pĂ«rdorimi i konstruktimeve «(struct foo){ .member = value };»). Kompajleri me mbĂ«shtetje pĂ«r C99 Ă«shtĂ« i detyrueshĂ«m pĂ«r Git qĂ« nga viti 2021, por mundĂ«sitĂ« e specifikimit C99 po implementohen me kujdes pĂ«r tĂ« ruajtur pĂ«rputhshmĂ«rinĂ« me kompajlerĂ«t qĂ« e mbĂ«shtesin pjesĂ«risht kĂ«tĂ« standard.
  • NĂ« rregullat e pranim-shkĂ«mbimit tĂ« patch-eve janĂ« bĂ«rĂ« ndryshime, duke lejuar dĂ«rgimin e patch-eve nĂ«n njĂ« pseudonim, jo vetĂ«m nĂ«n emrin e vĂ«rtetĂ« tĂ« zhvilluesit. Ky ndryshim pĂ«rputhet me rregullat e pranim-shkĂ«mbimit tĂ« patch-eve nĂ« bĂ«rthamĂ«n Linux.
  • Lista e azhurnuar e ndryshimeve qĂ« shkelin pĂ«rputhshmĂ«rinĂ«, tĂ« cilat do tĂ« aplikohen nĂ« degĂ«n Git 3.0. NjĂ« nga ndryshimet e rĂ«ndĂ«sishme nĂ« versionin e ardhshĂ«m tĂ« Git 3.0 Ă«shtĂ« kalimi nĂ« identifikues objektesh tĂ« bazuar nĂ« algoritmin e hashing-it SHA-256 si parazgjedhje gjatĂ« inicializimit tĂ« repozitorĂ«ve tĂ« rinj dhe aktivizimi i formatit "reftable" pĂ«r ruajtjen nĂ« repozitor tĂ« referencave pĂ«r degĂ«t dhe etiketat (aktivizimi i depozitĂ«s bllok nga projekti JGit, e optimizuar pĂ«r ruajtjen e njĂ« numri shumĂ« tĂ« madh referencash).

Burimi: opennet.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