Git 2.39 release kontrol sumber

Saatos dua bulan pangwangunan, sistem kontrol sumber anu disebarkeun Git 2.39 parantos dileupaskeun. Git mangrupikeun salah sahiji sistem kontrol versi anu pang populerna, dipercaya sareng berprestasi tinggi, nyayogikeun alat pangembangan non-linier anu fleksibel dumasar kana cabang sareng ngahiji. Pikeun mastikeun integritas sajarah sareng résistansi kana parobahan retroaktif, hashing implisit tina sakabéh sajarah saméméhna dianggo dina unggal komitmen; ogé mungkin pikeun ngajamin tag individu sareng komitmen sareng tanda tangan digital para pamekar.

Dibandingkeun sareng sékrési sateuacana, versi énggal kalebet 483 parobihan, disiapkeun sareng partisipasi 86 pamekar, dimana 31 mimitina nyandak bagian dina pangwangunan. Inovasi utama:

  • Paréntah "git shortlog", dirancang pikeun nembongkeun kasimpulan sareng statistik tina sajarah parobahan, parantos nambihan pilihan "-group" pikeun ngagolongkeun commits sawenang-wenang ku widang henteu diwatesan ku panulis atanapi committer. Salaku conto, pikeun nampilkeun daptar pamekar kalayan inpormasi ngeunaan jumlah parobihan, kalayan tumut kana asisten anu disebatkeun dina kolom "Co-authored-by", anjeun tiasa nganggo paréntah: git shortlog -ns --group=author - -group=trailer:co-authored-ku

    Output shortlog bisa aggregated maké specifiers pormat, sarta pilihan "--group" nyata bisa simplify kreasi laporan kompléks jeung ngaleungitkeun kabutuhan paréntah asihan tambahan. Contona, pikeun nyieun laporan kalawan informasi ngeunaan sabaraha commits pikeun release tinangtu anu ditarima dina unggal bulan, Anjeun bisa nangtukeun: git shortlog v2.38.0.. —date='format:%Y-%m' —group=' %cd' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 Saméméhna, pikeun ngalakukeun operasi anu sami kedah nganggo utilitas diurutkeun sareng uniq: git log v2.38.0 .. —date='format:%Y -%m' —format='%cd' | diurutkeun | uniq -c

  • Kamampuhan mékanisme "cruft packs", dirancang pikeun packing objék unreachable nu teu referenced dina Repository nu (teu referenced ku cabang atawa tag), geus dimekarkeun. Objék anu teu tiasa dihontal dipupus ku tukang sampah, tapi tetep dina gudang pikeun sababaraha waktos sateuacan dihapus pikeun ngahindarkeun kaayaan balapan. Mékanisme "cruft pak" ngidinan Anjeun pikeun nyimpen sakabeh objék unreachable dina hiji file pak, sarta nembongkeun data dina waktu modifikasi unggal objék dina tabel misah, disimpen dina file misah jeung ".mtimes" extension, ambéh maranéhanana ngalakukeun. teu tumpang tindih jeung total waktu modifikasi.

    Panjang waktos objék anu teu tiasa dihontal tetep dina gudang sateuacan aranjeunna leres-leres dihapus ditangtukeun ku pilihan "-prune =". " Sanajan kitu, bari reureuh saméméh mupus mangrupakeun cara anu cukup éféktif tur praktis pikeun nyegah korupsi gudang alatan kaayaan lomba, éta teu 100% dipercaya. Pikeun ngagampangkeun mulangkeun gudang anu ruksak, sékrési énggal nyayogikeun kamampuan pikeun ngahémat objék anu leungit ku cara nambihan pilihan "--expire-to" kana paréntah "git repack", anu ngamungkinkeun anjeun netepkeun file pikeun nyiptakeun éksternal. salinan sadaya objék dihapus. Contona, pikeun nyimpen objék unreachable nu teu robah dina panungtungan 5 menit dina file backup.git, anjeun tiasa nganggo paréntah: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -to=../backup.git

  • Naék sacara signifikan (dugi ka 70%) laju operasi "git grep -cached" nalika milarian di daérah anu nganggo kloning parsial (sparse-checkout) sareng anu aya indéks parsial (indéks jarang). Sateuacanna, nalika netepkeun pilihan "-cached", pamilarian dilaksanakeun heula dina indéks biasa, teras dina bagian parsial, anu nyababkeun telat anu nyata nalika milarian dina repositori ageung.
  • Verifikasi server ngeunaan kohérénsi objék anyar sateuacan disimpen dina gudang nalika operasi "git push" parantos gancangan. Ku ngalih ka akuntansi ngan ukur nyatakeun tautan nalika mariksa, dina gudang uji sareng 7 juta tautan, anu ngan ukur 3% katutupan ku operasi push, optimasi anu dilakukeun ngamungkinkeun ngirangan waktos mariksa ku 4.5 kali.
  • Pikeun ngajaga ngalawan poténsi integer overflows dina kode, paréntah "git apply" ngawatesan ukuran maksimum patches nu bisa diolah. Lamun ukuran patch ngaleuwihan 1 GB, kasalahan ayeuna bakal dipintonkeun.
  • Pikeun ngajaga tina kerentanan poténsial, parobihan parantos dilakukeun pikeun ngabersihan inpormasi anu teu dipikabutuh tina header anu disetél nalika nganggo modul h2h3 kalayan pilihan GIT_TRACE_CURL = 1 atanapi GIT_CURL_VERBOSE = 1 sareng HTTP / 2.
  • Nalika ngalakukeun pamariksaan dina cabang anu mangrupikeun tautan simbolis ka cabang anu sanés, paréntah "git symbolic-ref HEAD" ayeuna ningalikeun nami cabang target tinimbang nami symlink.
  • Nambahkeun dukungan pikeun argumen @{-1} kana pilihan "--edit-description" ("git branch —edit-description @{-1}") pikeun ngédit déskripsi cabang saméméhna.
  • Ditambahkeun "git merge-tree --stdin" paréntah pikeun lulus daptar pilihan liwat input standar.
  • Dina sistem file jaringan, panangan fsmonitor, anu ngawas parobahan dina sistem file, ditumpurkeun sacara standar.

sumber: opennet.ru

Tambahkeun komentar