Git 2.29.0 tiba dengan sokongan eksperimen untuk SHA-256, penambahbaikan dan banyak lagi

Git adalah salah satu sistem kawalan versi yang paling popular, dipercayai dan berprestasi tinggi, menyediakan alat pengembangan non-linear fleksibel berdasarkan percabangan dan penggabungan. Untuk memastikan integriti sejarah dan penentangan terhadap perubahan "secara retroaktif", hashing tersirat dari semua sejarah sebelumnya digunakan dalam setiap komitmen, juga memungkinkan untuk diperakui dengan tanda tangan digital tag individu dan pembangun komitmen.

Baru-baru ini versi barunya "Git 2.29.0" diumumkan dan berbanding dengan versi sebelumnya, 627 perubahan diadopsi dalam versi baru, dihasilkan dengan penyertaan 89 pemaju, yang mana 24 orang mengambil bahagian dalam pembangunan untuk pertama kalinya.

Ciri-ciri Baru Git 2.29.0

Dalam versi baru ini, merangkumi pilihan eksperimen untuk menggunakan algoritma hash SHA-256 bukannya SHA-1 yang dikompromikan semasa menulis objek ke repositori. Hash dihasilkan dari kandungan setiap objek di Git dan merupakan pengecam uniknya. Sebarang perubahan dalam data atau tajuk objek membawa kepada perubahan dalam pengenalnya. Kejadian perlanggaran dalam algoritma hash secara teori tidak menghalang pembentukan dua set data yang berbeza dengan hash yang dihasilkan.

Malangnya algoritma SHA-1 ternyata tidak tahan terhadap pembentukan perlanggaran buatan, tetapi untuk melakukan serangan nyata terhadap penggantian objek di Git dengan memanipulasi perlanggaran SHA-1, yang tidak mungkin, kerana untuk membatalkan objek yang terpisah, maka objek yang dibatalkan itu sudah mengandung corak perlanggaran, yaitu, blok sewenang-wenangnya tidak boleh diganti.

Oleh kerana setiap perlanggaran memerlukan sumber pengkomputeran yang sangat besar, templat yang sudah dikira diketahui yang membawa kepada perlanggaran dan sebelumnya di Git, sebuah cek ditambahkan untuk percubaan menggunakannya pada objek.

Pada tahap perkembangan ini, anda hanya dapat memilih antara SHA-1 dan SHA-256, tetapi sejauh ini anda tidak dapat menggabungkan hash yang berlainan di repositori pada masa yang sama. Juga, seperti sekarang, tidak ada penyedia Git, termasuk GitHub, yang menyokong repositori dengan hash SHA-256. Terdapat rancangan untuk menambah ciri portabiliti pada masa akan datang.

Perubahan lain dalam versi baru ini adalah dalam arahan "Git fetch" dan "git push" kepada mereka yang menambah sokongan untuk spesifikasi pautan eksklusif (refspec), memperluas hak pautan yang sepadan antara cawangan di repositori tempatan dan luaran. Mengecualikan spesifikasi rujukan boleh berguna dalam situasi di mana anda tidak hanya perlu memilih, tetapi juga mengecualikan cabang tertentu dari pemetaan. Sebagai contoh, apabila perlu memeriksa semua cabang "refs / heads / *", kecuali satu "refs / heads / ref-to-exclude", pertama sekali perlu menentukan senarai lengkap, dengan jelas termasuk setiap cabang.

Medan baru telah ditambahkan ke "git for-each-ref" yang dapat ditentukan dengan pilihan "-format", selain nama, jenis dan id objek. Contohnya, isi bidang yang ditambahkan: ukuran, subjek: membersihkan, dan pengubah: pendek untuk memaparkan pengenal objek pendek. Ia juga dibenarkan untuk menentukan beberapa argumen "-merged" dan "–no-digabungkan" untuk menapis pautan.

Apabila konflik berlaku semasa operasi "git merge", tajuk mesej komit kini berada dalam tanda kurung untuk dipisahkan dengan lebih jelas data komit dari mesej diagnostik Git.

Menambah tetapan baru "merge.renormalize", ketika ditetapkan, operasi check-out dan check-in dilakukan untuk setiap tahap gabungan tiga arah.

Versi kedua dari protokol komunikasi Git telah digulung kembali, yang dinonaktifkan dalam versi 2.27, dan digunakan ketika klien menyambung dari jauh ke pelayan Git. Masalah kutu yang menyebabkan pepijat telah didiagnosis dan diperbaiki.

Pilihan "–first-parent" telah ditambahkan ke perintah "git bisect"Itu digunakan untuk mengidentifikasi revisi di mana perubahan regresif terjadi, untuk mengubah pemilihan komitmen yang berlaku antara tinjauan kerja yang diketahui dan tinjauan di mana masalah itu berlaku. Sekiranya anda menentukan "–first-parent", hanya komit pada cabang gabungan yang akan dihitung, mengabaikan komitmen penggabungan itu sendiri.

Meningkatkan kecekapan arahan dalaman "git index-pack" Digunakan semasa menjalankan "git push" atau "git fetch" ketika menyelaraskan pembungkusan indeks pada sistem berbilang teras.

Menambah tetapan "merge.suppressDest", yang mengawal penambahan frasa "dalam $ dest" ke "Gabungkan $ hulu ke dalam $ dest" yang dikeluarkan semasa cabang digabungkan (sebelumnya, frasa "di $ dest" secara default tidak ditunjukkan untuk cabang utama).

Memperbaiki kerentanan di backend "contrib / mw-to-git" (tidak dibina secara lalai) untuk mendorong dan mengambil data dari MediaWiki. Masalahnya memungkinkan untuk mengatur pelaksanaan kod ketika mengakses instance MediaWiki yang berada di bawah kawalan penyerang.

Akhirnya, jika anda ingin mengetahui lebih lanjut mengenainya, anda boleh menyemak perinciannya Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.