Lëshimi i sistemit të menaxhimit të teksteve të burimeve Git 2.39

Pas dy muajsh zhvillimi, është publikuar lëshimi i sistemit të distribuara të menaxhimit të teksteve të burimeve Git 2.39. Git është një nga sistemet më të njohura, të besueshme dhe me performancë të lartë për menaxhimin eVersioneve, duke ofruar mjete fleksibël për zhvillimin jo-linear, të bazuar në degëzim dhe bashkim të degëve. Për të garantuar integritetin e historisë dhe qëndrushmërinë ndaj ndryshimeve "pas datës", përdoret hash-im implicit i gjithë historisë së mëparshme në çdo commit, si dhe është e mundur të verifikohen me nënshkrime digjitale të zhvilluesve etiketat dhe commits e veçanta.

Krahasuar me lëshimin e kaluar, në versionin e ri janë përfshirë 483 ndryshime, të përgatitura me pjesëmarrjen e 86 zhvilluesve, nga të cilët 31 morën pjesë për herë të parë në zhvillim. Risi kryesore:

  • Ekziston njĂ« opsion i ri "—group" pĂ«r komandĂ«n "git shortlog", e cila Ă«shtĂ« e destinuar pĂ«r tĂ« treguar pĂ«rmbledhje me statistika nga historia e ndryshimeve, e cila lejon grupimin arbitrar tĂ« commits nga fusha, qĂ« nuk kufizohen vetĂ«m nĂ« autorin ose committer-in. PĂ«r shembull, pĂ«r tĂ« treguar njĂ« listĂ« zhvilluesish me informacion mbi numrin e ndryshimeve, duke marrĂ« parasysh ndihmĂ«sit e pĂ«rmendur nĂ« fushĂ«n "Co-authored-by", mund tĂ« pĂ«rdoret komanda: git shortlog -ns —group=author —group=trailer:co-authored-by

    Shkurtimi i rezultateve mund të agregohet duke përdorur specifikatorët e formatizimit dhe opsioni "--group" lejon që të krijoni raportet komplekse më lehtësisht dhe të shmangni ekzekutimin e komandave shtesë për renditje. Për shembull, për të krijuar një raport mbi numrin e komiteteve për versionin e caktuar në çdo muaj, mund të indikoni: git shortlog v2.38.0.. --date='format:%Y-%m' --group='' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 Më parë, për të kryer një operacion të ngjashëm, do të ishte e nevojshme të ishin angazhuar ndihmësit sort dhe uniq: git log v2.38.0.. --date='format:%Y-%m' --format='' | sort | uniq -c

  • Kanalet e mekanizmit 'cruft packs' janĂ« zgjeruar, tĂ« destinuara pĂ«r paketimin e objekteve tĂ« arritshme, pĂ«r tĂ« cilat mungojnĂ« lidhjet nĂ« depo (as pĂ«rmes degĂ«ve as pĂ«rmes etiketimeve). Objektet e arritshme fshihen nga mbledhĂ«si i plehrave, por pĂ«rpara se tĂ« fshihen qĂ«ndrojnĂ« pĂ«r njĂ« periudhĂ« tĂ« caktuar nĂ« depo pĂ«r tĂ« shmangur gjendjet e garĂ«s. Mekanizmi 'cruft packs' lejon ruajtjen e tĂ« gjitha objekteve tĂ« arritshme nĂ« njĂ« skedar pack, ndĂ«rsa tĂ« dhĂ«nat rreth kohĂ«s sĂ« modifikimit tĂ« çdo objekti pasqyrohen nĂ« njĂ« tabelĂ« tĂ« veçantĂ«, e ruajtur nĂ« njĂ« skedar tĂ« veçantĂ« me zgjerimin '.mtimes', pĂ«r t'u siguruar qĂ« ato tĂ« mos pĂ«rfshihen me kohĂ«n e pĂ«rgjithshme tĂ« ndryshimit.

    Koha e qëndrimit të objekteve të arritshme në depo para se të fshihen realisht përcaktohet nga opsioni '--prune='. Megjithatë, ndonëse vonesa përpara fshirjes është një mënyrë mjaft efektive dhe praktike për të parandaluar dëmtimin e depozitës për shkak të gjendjeve të garës, ajo nuk është 100% e besueshme. Për të lehtësuar rikuperimin e depozitës së dëmtuar, në versionin e ri është ofruar mundësia e ruajtjes së objekteve të munguar, për të cilën në komandën 'git repack' është shtuar opsioni '--expire-to', i cili lejon përcaktimin e një skedari për krijimin e një kopje të jashtme të të gjitha objekteve të fshira. Për shembull, për të ruajtur në skedarin backup.git objektet e arritshme, të cilat nuk janë ndryshuar për 5 minuta të fundit, mund të përdorini komandën: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire-to=../backup.git

  • ShpejtĂ«sia e kryerjes sĂ« operacionit 'git grep --cached' Ă«shtĂ« rritur ndjeshĂ«m (deri nĂ« 70%) kur kĂ«rkoni nĂ« zona ku aplikohet klonimi i pjesshĂ«m (sparse-checkout) dhe pĂ«r tĂ« cilat ekzistojnĂ« indekse tĂ« pjesshme (sparse index). MĂ« parĂ«, kur ishte e specifikuar opsioni '--cached', fillimisht kĂ«rkohej nĂ« indeksin normal, dhe pastaj nĂ« ato tĂ« pjesshme, çka shkaktonte vonesa tĂ« ndjeshme kur kĂ«rkohej nĂ« depo tĂ« mĂ«dha.
  • ShpejtĂ«sia e kryerjes Ă«shtĂ« pĂ«rshpejtuar nĂ« server kontrollin e lidhshmĂ«risĂ« sĂ« objekteve tĂ« reja pĂ«rpara se t'i vendosni nĂ« depo gjatĂ« kryerjes sĂ« operacionit 'git push'. FalĂ« kalimit nĂ« llogaritjen e kontrolleve vetĂ«m pĂ«r lidhjet e shpallura, nĂ« depozitĂ«n testuese me 7 milion lidhje, nga tĂ« cilat vetĂ«m 3% janĂ« pĂ«rfshirĂ« nĂ« operacionin push, optimizimet e bĂ«ra lejuan qĂ« koha e kontrollit tĂ« reduktohej 4.5 herĂ«.
  • PĂ«r tĂ« mbrojtur pĂ«rballĂ« mbushjeve tĂ« mundshme tĂ« numrave tĂ« plotĂ« nĂ« kod, ekipi "git apply" ka kufizuar madhĂ«sinĂ« maksimale tĂ« patch-eve tĂ« pĂ«rpunuara. NĂ« rast se madhĂ«sia e patch-it tejkalon 1 GB, tani do tĂ« shfaqet njĂ« gabim.
  • PĂ«r tĂ« mbrojtur nga potencialet e dobĂ«sive, janĂ« bĂ«rĂ« ndryshime pĂ«r tĂ« pastruar informacionet e tepĂ«rta nga titujt, tĂ« cilat jepen kur pĂ«rdoret moduli h2h3 me opsionin GIT_TRACE_CURL=1 ose GIT_CURL_VERBOSE=1 sĂ« bashku me HTTP/2.
  • Kur kryeni operacionin check out me njĂ« degĂ«, e cila Ă«shtĂ« njĂ« lidhje simbolike nĂ« njĂ« degĂ« tjetĂ«r, komanda "git symbolic-ref HEAD" tani shfaq emrin e degĂ«s sĂ« qĂ«llimit, nĂ« vend tĂ« emrit tĂ« lidhjes simbolike.
  • Shtuar mbĂ«shtetje pĂ«r argumentin @{-1} nĂ« opsionin "—edit-description" ("git branch —edit-description @{-1}") pĂ«r tĂ« redaktuar pĂ«rshkrimin e degĂ«s sĂ« kaluar.
  • Shtuar komanda "git merge-tree —stdin", e cila lejon kalimin e njĂ« liste parametrash pĂ«rmes rrjedhĂ«s standarde.
  • NĂ« sistemet e skedarĂ«ve tĂ« rrjetit, pĂ«r default Ă«shtĂ« çaktivizuar menaxherin fsmonitor, i cili ndjek ndryshimet nĂ« FS.

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