Selepas dua bulan bekerja keras, komuniti pembangunan Git memperkenalkan Git versi 2.51, kemas kini yang Ia menyatukan 506 perubahan, di mana 91 pemaju mengambil bahagian, yang mana 21 daripadanya menyumbang buat kali pertama.
Keluaran ini memperkenalkan penambahbaikan yang direka bentuk untuk meningkatkan prestasi dan memudahkan pengurusan repositori, termasuk pengoptimuman prestasi untuk git-push dan git-fetch, serta beberapa perubahan yang bergerak ke arah cawangan 3.x baharu.
Ciri-ciri Baru Git 2.51
Salah satu sorotan Git 2.51 ialah Mengoptimumkan arahan git push dan git fetch dalam repositori dengan sejumlah besar rujukan. Kunci kepada peningkatan ini adalah dalam kemas kini kelompok, yang memproses berbilang pautan dalam satu transaksi dan bukannya secara individu.
Terima kasih kepada pengoptimuman ini, Bahagian belakang boleh ubah kini mengatasi prestasi belakang fail tradisional.Dalam ujian dengan repositori yang mengandungi sehingga 10 rujukan, prestasi git fetch meningkat sebanyak 000x untuk boleh direfleksikan dan 22x untuk fail, manakala git push masing-masing meningkat sebanyak 1.25x dan 18x.
Satu lagi inovasi penting ialah iPengenalan pakej cruft yang dipanggil, direka untuk menyimpan objek yang tidak boleh diakses yang tidak dipautkan kepada cawangan atau tag. Objek-objek ini, yang sebelum ini bertaburan, kini boleh diuruskan dalam pembungkusan berasingans, yang menjadikannya lebih mudah dikawal dan mengurangkan saiz indeks berbilang pakej (MIDX).
dengan tetapan repack.MIDXMustContainCruft baharu, Git mengelak daripada memasukkan objek ini dalam indeks utamaDalam ujian pada GitHub, konfigurasi ini mengurangkan saiz indeks sebanyak 38%, mempercepatkan penulisan sebanyak 35% dan meningkatkan bacaan sebanyak 5%.
Pendekatan baru untuk pembungkusan objek
El perintah git pack-objects menggabungkan pilihan –path-walk, yang memperkenalkan kaedah yang inovatif untuk menyusun semula fail pembungkusan. Daripada memproses objek berdasarkan cincangan mereka, Git kini boleh mengulanginya berdasarkan laluan fail mereka, membungkus objek yang berkongsi lokasi yang sama bersama-sama. Pendekatan ini menghapuskan keperluan untuk pra-isih objek dan menghasilkan fail pembungkusan yang lebih kecil dan lebih cekap.
Dengan versi ini juga Format baharu untuk menukar keadaan pokok berfungsi dan indeks yang dibuat dengan Git Stash telah diseragamkan.. Kini anda boleh mengeksport dan mengimport simpanan seperti cawangan atau teg, menjadikannya lebih mudah untuk memindahkan keadaan dari satu sistem ke sistem yang lain.
Sebagai contoh:
git stash export --to-ref refs/stashes/mi-stash git push origin refs/stashes/mi-stash git fetch origin '+refs/stashes/*:refs/stashes/*' git stash import refs/stashes/mi-stash
Penambahbaikan kepada arahan klasik
Beberapa Perintah Git telah menerima kemas kini yang berkaitan:
- git cat-file kini melaporkan objek dan submodul yang hilang, menunjukkan pengecam dan bukannya hanya menandakan "hilang".
- git log mendapat manfaat daripada pengoptimuman penapis Bloom, mempercepatkan carian dengan berbilang laluan fail.
- Arahan suis git dan git restore, yang dianggap sebagai percubaan sejak 2019, akhirnya distabilkan sebagai alternatif moden kepada git checkout.
- Perintah git whatchanged, bersamaan dengan git log –raw, ditamatkan dan akan dialih keluar dalam Git 3.0.
- git for-each-ref menerima pilihan –start-after, yang bersama-sama dengan –count membenarkan penomboran output.
- git merge dan git pull kini termasuk pilihan –compact-summary, yang menyediakan format ringkasan yang lebih ringkas.
Sokongan C99 dan peraturan sumbangan baharu
Git terus menyesuaikan kodnya dengan ciri-ciri standard C99. Walaupun pengkompil yang serasi diperlukan sejak 2021, pembangun bergerak berhati-hati untuk mengekalkan keserasian dengan pengkompil yang hanya melaksanakan sebahagiannya.
Di samping itu, perubahan ketara telah diperkenalkan dalam dasar sumbangan: Patch kini boleh diserahkan di bawah nama samaran, keputusan yang sejajar dengan peraturan kernel Linux dan direka untuk menawarkan fleksibiliti yang lebih besar kepada penyumbang.
Melihat ke hadapan untuk Git 3.0
El Pasukan pembangunan juga telah mengemas kini peta jalan kepada Git 3.0., di mana dua perubahan utama menonjol: penggunaan lalai SHA-256 sebagai pengecam objek dan penggunaan format boleh semula untuk menyimpan rujukan cawangan dan teg. Penambahbaikan ini bertujuan untuk meningkatkan keselamatan dan kecekapan dalam repositori yang semakin besar dan kompleks.
Fuente: https://lore.kernel.org